• ベストアンサー

ランキングの不正をさせないスクリプト

Flash Light1.0のゲームのランキングを作成しております。 getURLでスコアとタイムの値をランキングへ飛ばしていますが URLを書き換えれば不正ができてしまいます。 ランキングの不正をなくす為にscoreとtimeの値を暗号化したいと考えております。 そのような事は可能でしょうか? また暗号化以外にも不正を無くさせる方法があれば教えて下さい。 宜しくお願いします。

  • Flash
  • 回答数3
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
  • suzuki-_-
  • ベストアンサー率77% (152/195)
回答No.3

> getURL("ランキング先" add seikairitu add "&time=" add time2 add "&type=add","","POST"); これはGETやPOSTの指定以前にパラメータが付いたURLを明示的に記述しています URLにあたる引数の記述はランキング先だけで、余計な文字列は必要ありません GET や POST を指定すると、自動的にその階層の変数が全てパラメータとして送信されます (全て送られたくない場合は、専用のMC内などにボタンを作って下さい) まず、以下の2つの違い確認して下さい (PCの場合Flashはブラウザで閲覧すること) on(press, keyPress "#"){ getURL("ランキング先", "", "GET"); } on(press, keyPress "#"){ getURL("ランキング先", "", "POST"); } ランキング用のパラメータを新たに作りたい場合は、 getURLの前に記述してください //例 http://ランキング先.php?score=100&time=15.085&type=add の場合 score = スコア記録が入った変数 time = タイム記録の入った変数 type = "add"; getURL("ランキング先.php", "", "POST"); > また、URLはどのように変更されるのでしょうか? POSTで送った場合、ランキング先.phpのみしかURLに表示されません

ama_xx
質問者

お礼

ご回答ありがとうございます。 POSTを指定するとgetURLの中に記入しなくても送信できたのですね。 理解できました。 詳しく教えて頂きありがとうございます。

その他の回答 (2)

  • suzuki-_-
  • ベストアンサー率77% (152/195)
回答No.2

・getURLのmethod Flash Light ではなく Flash Lite のことだと思いますが、 "携帯端末向けのみ"に公開しているのならば、特に暗号化せず getURLのmethodをPOSTとすれば不正データは送られてこないと思いますよ *理由1 URL自体にはパラメータがないので書き換えができない *理由2 携帯端末においてPOSTデータの解析は限りなく不可能に近い //例 on (keyPress "1") { score = 1000; time = 100; getURL("ランキング先", "", "POST"); } もちろんランキングシステム側もPOSTデータのみを参照するように変更する必要があります PC上の制作過程においてmethodをPOSTとしたgetURLの動作を確認する際は、 FlashPlayerのスタンドアロン版で確認せずに、ブラウザ等で確認して下さい スタンドアロンで確認してしまうと、getURLのmethodをPOSTとしても強制的にGETとして処理されてしまいます // ・どうしても暗号化させたい 回答者No1さんの仰っるような暗号化アルコリズムを適用させたいところですが、 FlashLite1.xでは独自関数も定義できませんし(callは別物)、 配列は擬似的にしか作れない、シフト演算子も使えない等、弊害がもりだくさんで、 組み込む労力を考えると全く理にかなうものではありません FlashLiteでは、1文字ずつアスキーに変換してから、 独自の方法でその内容を変え文字列に戻す(->暗号化される)、 というのが比較的簡単だと思います その暗号化手段をランキングシステムでも使用します 具体的な内容は復号化手段まで述べるようなものなので割愛します // ・その他 auの場合、閲覧中のURLを表示する為には、 お気に入りに登録からしか見れなかったような気がします HTML側のmetaタグでお気に入りの登録内容を変更できるので、 そこで表示しないようにすればGETでもURL自体を見せないことが可能かもです また、ランキングへの参加をデータフォルダからでも可能にしている場合は、 getURLの際に「http://~~にジャンプしますか?」みたいな警告が出ると思うので、 パラメータを無理矢理長くして後半を見せなくする+前途のお気に入り変更を使う、というのも有用かもしれません (これに関してはほとんどが"気がする""出来るかも"で、推測です)

ama_xx
質問者

補足

ご回答ありがとうございます。 >Flash Light ではなく Flash Lite のことだと思いますが 書き間違えました。Flash Liteでした! ランキングの飛ばし方についてですが 変更前は以下のように行っておりました。 on(press, keyPress "#"){ getURL("ランキング先" add seikairitu add "&time=" add time2 add "&type=add"); } そこで以下に書き換えました。 on(press, keyPress "#"){ getURL("ランキング先" add seikairitu add "&time=" add time2 add "&type=add","","POST"); } そのリンクへ飛び、お気に入りに登録してアドレスを確認したのですが http://ランキング先.php?score=100&time=15.085&typ=add のように何も変更されませんでした。 getURLにscoreとtimeが入っていれば書き方が変わってくるのでしょうか?また、URLはどのように変更されるのでしょうか? お手数ですがご回答宜しくお願いします。

回答No.1

scoreとtimeとパスワードをmd5やsha1してやって、値を判別するなんていう手法が一般的じゃないかな?と思います。 ?score=100&time=10&sh=42341AAFDADFA76876FAD sh = md5(score + password + time); こんな感じで。 CGI側も同じくmd5で値を算出して、shが正しいかをチェックする。 passwordの部分も動的に変わると良いかも知れません。 md5やsha1のスクリプトはWEB上を探すと見つかるんじゃないかと思います。

ama_xx
質問者

お礼

ご回答ありがとうございました。 Flash Lite1.0は使用できないそうですが、 今後PC用で作成する際参考にさせて頂きます。

関連するQ&A

  • FLASH5とジャバスクリプト?

    FLASH5を使って、動くボタンを作成しています。 それで「getURL」を使うと、リンク先にとびますよね。 でも、そのボタンをひとつ押すと、3つのフレームが変わるようにしたいのです。 以前はそれをJavaScriptと通常のgif形式のボタンで行っていたのですが、FLASHと組み合わせて使ってもできるものなのでしょうか? 「getURL」以外を使えばできるようになりますか? FLASHを使い始めて1週間もたっていないので、まだわからないことだらけなんです・・・。 現在使用中のブラウザはIE5ですが、ネスケなどでも正常に表示されますか?

  • FLASHとCGIを使ったスコアランキング作成

    FLASHとCGIを使ったスコアランキング作成を作成しています。 FLASHからCGIへデータ送信 ↓ CGI側でクッキー残っていれば名前入力なしでスコア保存 ↓ FLASH側でデータ受取ランキング表示 みたいな流れのものを作りたいのですが、どうもやり方がわからず困っています; いろいろなサイトを参考にさせてもらって勉強中なのですが、 サンプルをダウンロードして、FLASHで開いて参考にしようと思ってもなぜか開けなかったり、 サンプルをそのままアパッチのフォルダに移動しても、ランキング自体が動かなかったりで、なかなか進みません・・・。 これはフォルダにそのまま入れるだけではだめということでしょうか? もうずっと調べているのですがうまくいかず・・・本屋で参考になりそうなものを探しても、ランキングの作り方を描いてあるものを見つけられませんでした。 そこで、もしこういうものを作る上でオススメの解説サイトさまなどありましたらぜひ教えて頂きたいです>< もうずっとここで作業が止まっているので本当に困っています; 多分すごく簡単なことなんだと思いますが・・・自分の勉強不足ですみません、よろしくお願いします!

    • ベストアンサー
    • CGI
  • PHP,MySQLで3つのランキング

    前提: seisekiテーブルに id(Primary), student_id(生徒ID), kamoku_id(科目ID), score, time, created のフィールドがあります。 ランキングの順位条件は、同じ科目でscoreがより高く、timeがより短く、createdがより古い方が高位となります。 同じ科目を何度でも受講できる為、student_idはユニークではありません。 前提条件から、以下3つのランキングを取得したいと考えています。 ランキング1:科目毎のランキング(同じstudent_idが1~10位独占等可) ランキング2:自分(student_id)の全受講履歴と履歴毎のランキング ランキング3:id指定時のランキング情報 各ランキングは、1SQLである必要はなく、PHPでの加工も考慮に入れております。 試行錯誤しているのですが、ORDER BY区にどうやって順位を付ければ良いのか分からず、 SELECT * FROM seiseki ORDER BY kamoku_id DESC, score DESC, time ASC, created ASC ここから進みません・・・ 何卒、よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • ランキングサイトの運営について

    現在、携帯ランキングサイトを運営しようと思い、Perlでプログラムを組んでいます。 いろいろプログラムについて調べててimgタグ不正というのがあることがわかりました。 imgタグの中にランキングサイトのURLを書くというものらしいのですが、それを防止するにはどうすればよろしいのでしょうか? クッションページなどを設ければ簡単なのでしょうが、できればクッションはなしでいこうと思っています。 どういう方法があるでしょうか? またはimgタグでの不正の場合と通常のクリックでは送ってくる情報が違うのでしょうか?

  • Flash の action script が動きません

    初歩的な質問で失礼します。 Flash MXを使用しています。 ボタンを押したらURLに飛ぶ、というものを作りたいのですが ボタンに、 on (release) { getURL("http://www.*****.html"); } を指定したくても、ボタンシンボルのアップ/オーバー/ダウン...の中では「この場所には指定できません」というようなエラーメッセージがアクションパネルに表示され、書くことができません。 調べたところ、「ASを 2.0に指定すれば直る」と書いてあるページが多かったのですが、ver.MXにはそれを指定できる所が見当たりませんでした。 かといってタイムライン上に書くと「マウスイベントはボタンインスタンスでのみ使用できます。」と出てしまい、URLに飛んでくれません。 一体どうしたら良いでしょうか? どうかよろしくお願いします。

  • Flashリンクとアクションスクリプトに詳しい方にお願いします

    Flashリンクについて質問です。 Flashで作成したリンクはオンマウスしてもステータスバーにURLが表示されません。 Flashリンクでもステータスバーにリンク先を表示する方法があるのでしょうか? それに関連してもう一つ質問です。 Flashリンクからのアクセスはどうも解析できないようなんです。 実験してみたら、i2iのアクセス解析やアクセスランキングに表示されません。 Flashリンクでは絶対に解析できないのでしょうか? アクションスクリプトの設定などで解析可能なFlashリンクを 作る方法があるのでしょうか?

  • Flash(ゲーム)でのランキング作成

    Flashで作成したゲームをHPで公開しています。今回、初めてランキング機能の付いたものを作成したいと考えています。 ActionScriptは独学でそれなりの知識は身に付けたつもりなのですが、その他の言語は全く理解しておりません。 サーバー側に情報を保存するにはCGIやPHPと連携させる必要があるようで、色々検索してみたのですが、それらの知識が全くない為よく理解できません。 そこでこれらの言語について基礎から勉強しようと思うのですが、どこからはじめればいいのかすら分からず悩んでいます。 まずかなり初歩的なことなのですが、CGI(Peal)とPHPは全く別の言語と考えるべきなのでしょうか?Pealを勉強していればPHPも多少理解できるというような事もあるのでしょうか? 掲示板やカウンターなど動作は同じものも多いように思うのですがそれぞれどういった特徴、違い(得手不得手など)があるのでしょうか? 今回の私のようにFlashからデータを渡し、ランキングにするにはどちらのほうが向いているなどありますでしょうか? ランキング表示のような簡易(?)なものなら大した差はないのかもしれませんが将来的にはもう少し高度なものも出来ればと思います。 (何が高度なのかもわからず今のところ全く思いついておりませんが…。) あくまでFlashと連携する上で考えていますので勉強を始めるにあたり自分にとって都合のいいほうをと考えています。 質問が複数に及んでしまいましたが、回答頂ければ幸いです。 よろしくお願い致します。

    • ベストアンサー
    • CGI
  • Javascriptの関数をPHPで作りましたが戻値を得る方法がわかりません。

    はじめまして。xpにxamppの環境で利用してます。 PHPをjavascriptの関数に出来ると知り、 geturl.php <?php header("Content-type: application/x-javascript"); echo "function picturl() {"; ~ MySQLを特定の条件で検索し、画像の保存先URLを$urlへ格納 ~ echo "}"; ?> showpict.html <html> <head> <meta http-equiv="content-type" content="text/html;charset=shift_jis"> <title>photo</title> <script type="text/javascript" src="geturl.php"></script> <script type="text/javascript"> ~以下でたとえば、  var url = picturl(); とすれば url に 値が入るかと思って作成して見ました。 PHPの$urlには、 ./data/001.png のような値が入ります。 私が参考にしたPHP文では戻値は変数ではなく生のテキストで echo "document.write(\"文章\")"; となっており、これは実行できました。 変数を使用して上記のような値を求めようとしたところ、 echo "document.write(\"$url\")"; echo "retuen $url"; などを試してみましたがうまくいきません。 この様な方法では利用できないものなのでしょうか?。 それともecho文が以外の方法で行うものなのでしょうか?。 よろしくご協力のほどお願いいたします。

    • ベストアンサー
    • PHP
  • サーバにデータを送る時の変数名はわかるの?

    FLASH初心者です。 ゲームのハイスコアのランキングを作成しています。 ゲーム終了後に、FLASHからサーバ上に LoadVars の POST でスコアと名前を送って、PHP で保存する、というところまではできました。 この時、ユーザーは、サーバ上のPHPのファイル名や送信時の変数名を知ることができるのでしょうか? もしできるならいたずらなどの対策が必要かと思った次第です。 以上よろしくお願いします。

    • ベストアンサー
    • Flash
  • 順位をつける VB.NET2008

    お世話になります。 配列scoreに格納された値の大きさを比較して、 その順位を取得する(配列rankingに順位を入れる)方法を探しています。 何かいい方法はないでしょうか? 例 score(4) = (10, 5, 10, 2, 10) ranking(4) = (1, 4, 1, 5, 1)

専門家に質問してみよう