在我的注册表单中,如果用户禁用注册表单的javacript验证,并尝试插入值<script>alert("hacked")</script>,则此值将插入到我的数据库表中。您能帮助我如何保护我的应用程序不受该类型问题的影响吗?
谢谢。
发布于 2013-11-28 14:26:50
当您显示用户提供的数据时,您应该使用htmlentities()来确保所有的HTML标记都按字面意思显示,而不是由浏览器呈现。
发布于 2013-11-28 14:26:08
mysql对此有REPLACE()函数。
但是在您的例子中,您可以使用strip_tags,它将转义所有的html标记。
$name = strip_tags($_REQUEST['name']);如果您不想插入任何特殊字符
echo strip_tags(str_replace(array('"','/','(','*',':','=','^','#',';'),'',$name);这将把所有剩余的内容都视为字符串。
有关参考信息,请参阅Manual
https://stackoverflow.com/questions/20259065
复制相似问题