2012-04-04 9 views
3

5分ごとにPHPファイルにリクエストを送信するフラッシュファイルがあります。私のウェブサイトや他の場所からフラッシュファイルからのリクエストが送信されたかどうかを確認するにはどうすればいいですか?私は誰かが他の場所からのリクエストを送信していないことを確認したいです。セキュリティ上の理由から非常に重要です。次のPHPコードは使えますか?PHPでフラッシュファイルからリクエストを取得するときにipを確認する

if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) 
    { 
     $user_ip=$_SERVER['HTTP_X_FORWARDED_FOR']; 
    } 
    else 
    { 
     $user_ip=$_SERVER['REMOTE_ADDR']; 
    } 
+1

ファイルは自分のマシン上でローカルに実行されるため、フラッシュファイルからの要求は常にユーザーのIPから取得されます。 – knittl

答えて

2

本当に安全なソリューションを希望する場合は、ある種のトークンメカニズムが必要です。フラッシュのためのクライアント要求は、サーバー側のPHPファイル

は、次の文字列を構築します。

user_id(if any):client_ip:clinet_forwarded_ip(if any):some_random_string 

その後、AES256のような対称型セキュアなアルゴリズムで、この文字列を暗号化する必要があります。これはあなたのフラッシュのアクセストークンになります。その後、このトークンをflashvars経由でフラッシュに渡し、すべての要求に応じて、このトークンを送信して、自分の身元を確認する必要があります。

トークンを受け取ると、それを復号化する必要があります。まず復号化すれば、このトークンはあなたが持っているとみなしている鍵で暗号化されていることを意味します。次に、トークンにカプセル化されたすべてのフィールドが、要求を送信しているクライアントに一致することを確認する必要があります。いずれかのフィールドが一致しない場合は、その要求を拒否する必要があります。

+0

実際に私はすでにこの種の解決策を持っています。しかし、初めて暗号化された文字列が作成され、javaサーバーによってデータベースに挿入されます。その後、5分ごとにjavaがデータベースから文字列を取得し、それをフラッシュに渡し、フラッシュがphpに渡します。 PHPは文字列をクッキーし、すべてが正しければ新しいものを生成し、それを渡してデータベースに挿入します。 Javaは、私たちが使用するマルチプレイヤープラットフォームを必要としています。あなたの答えは私のために役立ちました。暗号化された文字列をphpで初めて生成し、javaではなく、フラッシュをウェブサイトにバインドします。手伝ってくれてありがとう。 –

関連する問題