-1

皆さんこんにちは、

お風呂に浸かりながら、面白いことを思いついた。PHP では、送信されたユーザーのフォームが有効であり、不正ではない (つまり、action="http://mysite.com/sendData.php" を含む他のサイトの他のフォーム) かどうかをどのように判断しますか? 実際には、実際のバックエンドで $_POST 変数を送信して照合するフォームを誰でも作成できるからです。そのスクリプトが合法であることを確認するにはどうすればよいですか(私のサイトからのみ)。

いくつかのアイデアはあるが、どこから始めればよいかわからない

  • ワンタイム キーを生成し、非表示の入力フィールドに保存する
  • フォームが配置されている URL を取得しようとします (ただし、可能です) (おそらく不可能です)。
  • データの送信先を特定するために、いくつかの非常に複雑な PHP グッズを使用する (可能)

何か案は?皆さんありがとう!

4

3 に答える 3

1

ハッカーによるこれらの試みのほとんどは、curl によって使用されます。curl で参照エージェントを変更するのは簡単です。curl で Cookie を設定することもできます。しかし、md5 ハッシュ キーをプライベート ソルトでスプーフィングし、それをセッション データに保存することで、ほとんどの平均的なハッカーやボットを阻止できます。キーをデータベースに保存しておくと、認証が追加されます。

于 2012-09-21T01:52:32.850 に答える
0

HTML5 は新しい入力タイプを提供します。この要素の目的は、ユーザーを認証するための安全な方法を提供することです。タグは、フォーム内のキー ペア ジェネレーター フィールドを指定します。

フォームが送信されると、秘密鍵と公開鍵の 2 つの鍵が生成されます。

秘密鍵はローカルに保存され、公開鍵はサーバーに送信されます。公開鍵は、将来ユーザーを認証するためのクライアント証明書を生成するために使用できます。

HTML5 の Keygen タグ

RFC

于 2013-06-26T04:23:24.700 に答える
0

次のような簡単な方法がいくつかあります。

  • $_SERVER['HTTP_REFERER']ホストが参照スクリプトであることを確認する
  • フォームにハッシュ キーを追加し、格納されているサーバー セッション変数でそれらをチェックします。

しかし、上記のすべては、何らかの方法で操作およびなりすましが可能です。したがって、 CSRF Validationsを使用できます。ここにこれに関する非常に良い記事があります。

私が遭遇した他の追加のテクニックは次のとおりです。

  • フォームに時間制限を追加し、その時間内に送信されるようにします。
  • フォームを操作するたびに、AJAX リクエストを送信して、フォームの制限時間を検証および対応します。
于 2012-09-21T00:41:09.920 に答える