get によって送信された変数 htmlspecialchars をフィルターするだけで十分ですか?
例えば、ユーザー名を検索する機能を実装したい場合、実際にユーザー名を取得するには、htmlspecialchars を使用するのが安全ですか?
PHP コード
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->htmlspecialchars(trim($_GET['username']), ENT_QUOTES);
ログイン後にコピー
------解決策------ -
スラッシュハンドル (')、(")、() および NULL を追加します
------解決策------------------
実際には、SQL インジェクションを防止したいと考えています。 php5.4.0 バージョン以降では、get_magic_quotes_gpc() がオンになっている場合、get/post/cookie によって送信されたデータは自動的にエスケープされます。ただし、get_magic_quotes_gpc() は php5.4.0 で削除され、常に false を返します。 >
したがって、最も安全な方法は、データベースへの攻撃を防ぐために mysql_real_escape_string() を介してエスケープすることです。
if (get_magic_quotes_gpc()) {
$username=ストリップスラッシュ($ _GET['ユーザー名']);
}
else {
$username= $_GET['username'];
}
$username= mysql_real_escape_string($ユーザー名);
................................................ ....