我还应该做些什么来消毒用户输入?

Dre*_*rew 4 php mysql security

最近,我在一些客户的网站上进行了审计.他们回来的一件事是我可以更好地消毒输入数据,因为人们仍然可能对数据库造成潜在的伤害.

下面的功能是我目前正在使用的(旧开发人员的剩余部分),但我看不出潜在问题可能存在的地方.

传递给数据库的字符串将通过XML显示,而XML又由Flash应用程序读取.

谁能告诉我我可能会缺少什么?谢谢

function secure_string($string)
{   
    return (strip_tags(addslashes(mysql_real_escape_string(
                      stripslashes($string)))));
}
Run Code Online (Sandbox Code Playgroud)

Kai*_*aja 5

看起来这个功能太多了.mysql_real_escape_string()已经逃脱了你需要逃脱的一切,所以没有必要继续逃避addslashes().实际上,通过逃避反斜杠mysql_real_escape_string()创建它可能弊大于利.


Elz*_*ugi 5

最好使用新的PHP函数filter_var()来清理输入.新的更好.