3

5分ごとにphpファイルにリクエストを送信するフラッシュファイルがあります。フラッシュファイルからのリクエストが自分のWebサイトまたは他の場所から送信されたかどうかを確認するにはどうすればよいですか。誰かが他の場所からリクエストを送信していないことを確認したいと思います。セキュリティ上の理由から非常に重要です。次のPHPコードは機能しますか?

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

1 に答える 1

2

本当に安全なソリューションが必要な場合は、ある種のトークンメカニズムが必要です。

クライアントがフラッシュ ファイルを要求すると、サーバー側の PHP が次の文字列を作成します。

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

次に、この文字列を AES256 などの安全な対称アルゴリズムで暗号化する必要があります。したがって、これがフラッシュのアクセス トークンになります。次に、このトークンを flashvars を介して flash に渡し、要求ごとに flash はこのトークンを送り返してその身元を確認する必要があります。

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

于 2012-04-04T10:01:12.783 に答える