a-z RegEX是否足以清理用户输入?

时间:2016-09-21 09:38:46

标签: php mysqli

如果我使用say:

preg_replace('#[^a-z0-9]#i', '', $_POST['dangerousINPUT']);

这足以完全停止注射攻击吗?此外,它会阻止黑客用于此类攻击的疯狂角色(非英文字母)

谢谢。我没有找到具体问题的答案。

2 个答案:

答案 0 :(得分:0)

这还不够。

想象一下这样的东西在Stack Overflow上实现了。您可能根本无法发布您的问题。

答案 1 :(得分:0)

是的,盲目地替换 [a-z0-9] 之外的所有字符可能在大多数情况下有效,但这不是正确的方法。使用在给定上下文中专门为此任务设计的函数/方法:

即使您想从用户名中删除这些字符,您仍应该转义最终值或使用预准备语句。这使您可以改变主意,了解允许哪些字符,而无需修改所有代码并在以后引入适当的清理。