如果我使用say:
preg_replace('#[^a-z0-9]#i', '', $_POST['dangerousINPUT']);
这足以完全停止注射攻击吗?此外,它会阻止黑客用于此类攻击的疯狂角色(非英文字母)
谢谢。我没有找到具体问题的答案。
答案 0 :(得分:0)
这还不够。
想象一下这样的东西在Stack Overflow上实现了。您可能根本无法发布您的问题。
答案 1 :(得分:0)
是的,盲目地替换 [a-z0-9] 之外的所有字符可能在大多数情况下有效,但这不是正确的方法。使用在给定上下文中专门为此任务设计的函数/方法:
即使您想从用户名中删除这些字符,您仍应该转义最终值或使用预准备语句。这使您可以改变主意,了解允许哪些字符,而无需修改所有代码并在以后引入适当的清理。