可能重复:
防止 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)
为此目的做了一个例外。对此有何安全考虑?
谢谢您的回复。