-1

メソッド$_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

それをどのように扱うのですか?

4

1 に答える 1

2

取り扱いが簡単です。クエリパラメータの使用方法を正確に処理するため、パラメータを使用するときは適切な予防措置を講じてください。

データベースクエリを処理している場合は、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にあります。

それ以外は、主にリクエストパラメータを使用する際の常識を使用してください。それが間違っている、または安全でないと感じた場合、それはおそらくそうです。

于 2013-03-22T23:05:19.720 に答える