这够了吗?
function cleanVar($str1){
if(get_magic_quotes_gpc() == 0){
$str1 = addslashes(htmlspecialchars($str1));
}
$str1 = stripslashes($str1);
$str1 = htmlspecialchars($str1);
$str1 = strip_tags($str1);
$str1 = mysql_real_escape_string($str1);
$str1 = str_replace("script","",$str1);
$str1= str_replace("body","",$str1);
$str1 = str_replace("select","",$str1);
$str1= str_replace("insert","",$str1);
$str1= str_replace("update","",$str1);
$str1 = str_replace("on","",$str1);
$str1= str_replace("<","&l",$str1);
$str1 = str_replace(">","&",$str1);
$str1 = trim($str1);
return $str1;
}
答案 0 :(得分:3)
如果可能,请使用PDO&amp;准备好的陈述它为您处理所有这些并确保您不会丢失任何数据(条带标签有些奇怪)
答案 1 :(得分:1)
$str1 = str_replace("script","",$str1);
$str1= str_replace("body","",$str1);
$str1 = str_replace("select","",$str1);
$str1= str_replace("insert","",$str1);
$str1= str_replace("update","",$str1);
$str1 = str_replace("on","",$str1);
如果将此函数应用于包含以下内容的字符串,将会发生什么:“这是对伊拉克局势更新的评论”。你会删除太多的信息。
PDO很棒,您应该考虑从过时的mysql库切换到它。
答案 2 :(得分:-1)
查看OWASP预防表,这几乎涵盖了
& --> &
< --> <
> --> >
" --> "
' --> ' ' is not recommended
/ --> / forward slash is included as it helps end an HTML entity
https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet
SQL注入也包含在此中。
替换实际的SQL语句也有点奇怪,如果要在数据库中保存实际的单词,它可能会成为一个问题。