在我的注册表单中,如果用户禁用注册表单的javascript验证并尝试插入值<script>alert("hacked")</script>
,则该值将插入到我的数据库表中。你能帮助我如何保护我的申请免受那种类型的问题吗?
谢谢。
当您显示用户提供的数据时,您应该使用htmlentities()
来确保任何HTML标记都可以直接显示,而不是由浏览器呈现。
井mysql
对此具有REPLACE()
函数。
但在您的情况下,您可以使用strip_tags
,它将转义所有html
标记。
$name = strip_tags($_REQUEST['name']);
如果你不想插入任何特殊字符
echo strip_tags(str_replace(array('"','/','(','*',':','=','^','#',';'),'',$name);
这将把所有剩余的都视为字符串。
有关参考,请参阅手册