Flashブログパーツのゲームから、履歴として結果をPHPを通して、DBに保存しようと思っています。
FlashからPHPに結果をPOSTする部分ですが、swfを解析されるとブラウザなどからアクセスされてしまわないのか心配です。
sendAndLoadでポストする方法を取ろうと思っています。
あらかじめ、サーバに問い合わせて、キーとなる文字列を受け取り、それを登録時に照合する方法も考えましたが、
それでもキーを受け取るところがブラウザなどからアクセスして取得してしまえば、同じことです。
何かできるだけ確実にそれらをはじく方法はないのでしょうか?
FMSなどを使わないですむ方法で、できればあまり複雑でない方法が希望です。
FlashPlayer8対応にしたいので、AS3は使えません。
※AS3ならできるのであれば、その情報は知っておきたいです。
SWFを解析されてしまったら、元も子もないですが、
スコアデータに、MD5 のハッシュをつけて、
スコアの妥当性をチェックする案はどうでしょうか?
http://aoi-project.com/blog/2006/07/actionscript20md5.html
そして、スコアやハッシュを、簡単なXORなどで暗号化を施してしまえば、
解読は難しくなると思います。
swfの解析を心配されているのであれば、そもそもネットワークモニタなどでパケットを解析されてしまえばいかようにも「ふりをした」通信をされてしまいそうな気がします。
一番確実なのはFlashごとSSL上で運用することではないでしょうか。
ただし、Flash+SSL+IEの組合せでは問題があり回避策を入れなければならないようなので注意。
SSLの場合でも、同じような気がするのですが。
たとえば、
が、
https://ssl.aaa.com/regist.php
にデータをポストするとします。
このとき、PHPの側で、これは正常は登録である(https://ssl.aaa.com/test.swfからのポスト)か、それともhtmlを作って、そこからhttps://ssl.aaa.com/regist.phpにポストしたのかを判別できるかということかと思います。
ネットワークモニタのことは、確かにそうですね。たとえ、あらかじめキーを受け取ったりしても同じですね。
Flashからデータを登録することは、昔から結構一般的な気がするのですが、通常、どうしているのでしょうか?
もしかして、SWFを解析されない前提だったりするのでしょうか?
ありがとうございます。
この場合も、swfを解析さえしてしまえば、わかってしまいますよね。
たとえば、
http://www.aaa.com/bbb.swf
からのポストだけ許すとかができればいいと思いますが、
リファラでは偽装できるし、第一Flashからではリファラが取れないブラウザがあるので、悩ましいです。