メソッド$_GETを使用してダイナミクスURLを作成します。
$page = $_GET['id'];
URL:mysite.com/index.php?id=1
しかし、誰かが悪意のあるURLを挿入した場合はどうなりますか?
URL:mysite.com/index.php&id= http://www.infectedsite.com/viruses.txt?
それをどのように扱うのですか?
メソッド$_GETを使用してダイナミクスURLを作成します。
$page = $_GET['id'];
URL:mysite.com/index.php?id=1
しかし、誰かが悪意のあるURLを挿入した場合はどうなりますか?
URL:mysite.com/index.php&id= http://www.infectedsite.com/viruses.txt?
それをどのように扱うのですか?
取り扱いが簡単です。クエリパラメータの使用方法を正確に処理するため、パラメータを使用するときは適切な予防措置を講じてください。
データベースクエリを処理している場合は、getパラメータを適切にエスケープするようにしてください。これは使用しているものによって異なりますが、読むのに役立つページは次のとおりです。http: //php.net/manual/en/function.mysql-real-escape-string.php(非推奨ですが、文字列のエスケープ)、およびPDOライブラリのプリペアドステートメントhttp://php.net/manual/en/pdo.prepared-statements.php
知っておくべきもう1つのことは、クロスサイトスクリプティング(XSS)です。それを読むのに良い情報源はhttps://www.owasp.org/index.php/Cross-site_Scripting_(XSS)です。このように攻撃される可能性があることを考えるだけで、コード内で攻撃から保護することができます。リンクされたウェブページは、この点でも良いアドバイスを提供します。
ブラッドがコメントで言及しているように、PHPはさまざまなフィルタリング機能を提供します。これらは、データのサニタイズと検証の両方に使用できます。この例はhttp://php.net/manual/en/book.filter.phpにあります。
それ以外は、主にリクエストパラメータを使用する際の常識を使用してください。それが間違っている、または安全でないと感じた場合、それはおそらくそうです。