这是我最近从 - Sams Teach Yourself Ajax, JavaScript, and PHP All in One学到的一本书中使用的消毒功能。
我一直在自己的PHP网站上使用它。对于现实世界的使用是否安全?
function sanitizestring($var)
{
$var = strip_tags($var);
$var = htmlentities($var);
$var = stripslashes($var);
return mysql_real_escape_string($var);
}
答案 0 :(得分:8)
我会说这太笼统了。 可能对于许多用途都是安全的,但它通常会给字符串带来不必要的副作用。不是每个字符串都应该像那样转义。
mysql_real_escape_string()
应仅在SQL查询中使用。更好的是,用PDO绑定params。htmlspecialchars()
更多是您的朋友。将字符集作为参数赋予它。因此,我会使用mysql_real_escape_string()
进行查询,使用htmlspecialchars()
来回显用户提交的字符串。还有很多要知道的。做一些further reading。
答案 1 :(得分:1)
您也可以考虑将filter-input应用于此filters的scope。