ホームページ >バックエンド開発 >PHPチュートリアル >PHP セキュリティ - 不正なフォーム送信

PHP セキュリティ - 不正なフォーム送信

黄舟
黄舟オリジナル
2017-02-22 09:20:341947ブラウズ



チートフォーム送信

なりすましフォームの作成は、URL を偽造するのとほぼ同じくらい簡単です。結局のところ、フォームの送信はブラウザによって行われる単なる HTTP リクエストです。リクエストの形式の一部はフォームによって異なり、リクエスト内のデータの一部はユーザーから取得されます。

ほとんどのフォームは、相対 URL アドレスを使用してアクション属性を指定します:

  <form action="process.php"
method="POST">


フォームが送信されると、ブラウザはアクションで指定された URL を要求し、現在の URL アドレスを使用して相対 URL を見つけます。たとえば、前のフォームが http://www.php.cn/ へのリクエストに応じて生成された場合、ユーザーがフォームを送信した後、URL アドレス http://www.php.cn/ がリクエストされます。

これを知っていると、絶対アドレスを指定してフォームをどこにでも配置できることは容易に想像できます。 このフォームはどこにでも配置でき、このフォームを使用して作成された提出物は元のフォームで作成されたものと同じです。これに気づいた攻撃者は、アクションを絶対 URL アドレスに変更しながら、ページのソース ファイルを表示してサーバーに保存することができます。これらのメソッドを使用すると、攻撃者はフィールドの最大長制限の削除、ローカル検証コードの削除、隠しフィールドの値の変更、より柔軟な目的のために要素の型を書き換えるなど、フォームを任意に変更できます。これらの変更は、攻撃者がサーバーにデータを送信するのに役立ちます。また、プロセスが非常にシンプルで簡単であるため、攻撃者は専門家である必要はありません。


スプーフィングされたフォーム攻撃を防ぐことはできません。これは少し奇妙に思えるかもしれませんが、実際には真実です。しかし、これについて心配する必要はありません。入力を正しくフィルタリングすると、ユーザーは送信方法に関係なく、ルールに従う必要があります。

この手法を試してみると、ほとんどのブラウザでは、前のページのアドレスを識別するために HTTP ヘッダーに Referer メッセージが含まれていることがわかります。この例では、Referer 値はフォームの URL アドレスです。これに騙されず、フォーム送信となりすましのフォーム送信を区別するために使用してください。次のセクションのデモでは、HTTP ヘッダーも非常に簡単に偽造でき、Referer を使用して判定する方法がよく知られていることがわかります。

上記は、PHP セキュリティ スプーフィング フォーム送信の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) にご注意ください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。