重複の可能性:
SQL インジェクションを防ぐ最善の方法は?
このトピックに関するガイドがたくさんあることは知っていますし、それについてたくさん読んだことがありますが、誰かに直接尋ねて、これについて確認したかったのです.
さて、私の質問に。まず、mysql_real_escape_string をどのくらいの頻度で使用する必要がありますか。
例、次のクエリがある場合:
"SELECT * FROM tabel WHERE id = $_POST['id'] and email LIKE '%hotmail.com' and row = 2"
ここから逃れるには、いったい何が必要なのだろうか?$_POST で十分ですか、それともクエリ内のすべての変数で行う必要がありますか? (saferize(2), saferize(%hotmail.com))
?
私が持っている別の質問は、この機能がサニタイズに適しているかどうかです?
function saferize($string) {
if(get_magic_quotes_gpc() == true) {
$string = stripslashes($string);
}
$string = htmlspecialchars($string);
if(strpos($string, '<br />')){
$string = str_replace('<br />', '<br />', $string);
}
return mysql_real_escape_string($string);
}
<br />
データベースに直接挿入しているのでhtmlspecialchars($string)
、その目的のために例外を作成しました。これに関するセキュリティ上の考慮事項は何ですか?
返信ありがとうございます。