是否因为安全性而删除或不删除非alphanum.values?

时间:2013-01-15 14:56:35

标签: php preg-replace

为了减少攻击者的可能性,在表格中只包含字母数字值是否值得?例如,在注册表单上的用户名和密码输入中,应用以下内容:

preg_replace("/[^A-Za-z0-9 ]/", '', $input); 

当然,每次登录前都要执行相同的操作吗?

2 个答案:

答案 0 :(得分:2)

通过删除任何字符,您实际上会削弱安全性。

删除任何字符绝对没有意义,而密码中的某些非alanum字符必需以提高安全性

请参阅我对“非法”字符主题的其他答案:https://stackoverflow.com/a/2995163/285587

答案 1 :(得分:1)

我们可以使用PHP prepared statements之类的其他方法来保护可能的SQL注入。但是,我们还必须确保不会将任意用户输入返回给服务器进行显示,否则可能会进行脚本注入。虽然如果从头开始设计系统,后者是可以避免的,但很可能很难修补很久以前无需关注的内容。

因此,如果某些用户提供的数据库字符串可能返回到浏览器,在某些情况下,使用某些过滤以防止JavaScript注入可能是有意义的。