基本的なSQLインジェクション?
-
06-07-2019 - |
質問
前の質問で、クエリが発生しやすいと言われましたSQLインジェクション。
get_stats = mysql_query("SELECT *
FROM visitors
WHERE site=' 前の質問で、クエリが発生しやすいと言われましたSQLインジェクション。
<*>
この問題に取り組む最も簡単な方法は何ですか?また、注射の問題についてさらに読んでいますか? (Googleで見逃すかもしれないもの)。ありがとう!
GET[site]'
AND date BETWEEN '$start_date' AND '$end_date' ");
この問題に取り組む最も簡単な方法は何ですか?また、注射の問題についてさらに読んでいますか? (Googleで見逃すかもしれないもの)。ありがとう!
解決
準備されたステートメントを使用します。
ほとんどの場合、プリペアドステートメントは、クエリとパラメーターを安全な方法で結合します。
他のヒント
$ _ GET ['site']はブラウザのURLから直接取得する値です。つまり、ユーザーはこの値を必要なものに簡単に変更できます。実際に送信する前に、すべての値を確認/サニタイズする必要がありますデータベースに。
このようなものは出発点であり、さらに多くの作業を行うことができ、多くの方法があります。すべての変数をサイト全体に簡単に渡すカスタム関数/クラスを作成します。 >
$site = mysql_real_escape_string( $ _ GET ['site']はブラウザのURLから直接取得する値です。つまり、ユーザーはこの値を必要なものに簡単に変更できます。実際に送信する前に、すべての値を確認/サニタイズする必要がありますデータベースに。
このようなものは出発点であり、さらに多くの作業を行うことができ、多くの方法があります。すべての変数をサイト全体に簡単に渡すカスタム関数/クラスを作成します。 >
<*>GET['site']);
$start_date = mysql_real_escape_string($start_date);
$end_date = mysql_real_escape_string($end_date);
get_stats = mysql_query("SELECT * FROM visitors WHERE site='$site' AND date >= '$start_date' AND date <= '$end_date' ");
mysql_real_escape_string は最も基本的なセキュリティの最も簡単な形式はこちら。