0

谷歌搜索给了我验证表单字段的方法,但我已经可以构建它们了。我的问题是,哪些是可以安全包含的字符,哪些是在表单字段中排除的?具体来说,用户名和密码。

一个简短的解释也很好。

谢谢。

4

2 回答 2

1

您需要排除数据中永远不会包含的所有字符。如果您的用户名/密码只能包含字母数字字符,您认为使用特殊字符是否有意义?

查看一些用于JAVAPHP的REGEX

有一个正则表达式参考表也可能很有用。

如果您向我们提供有关您正在使用的语言的更多信息,我们可能会为我们提供更多帮助。祝你有美好的一天!

[更新] 有非常好的安全参考和OWASP 网站,它是任何网络安全相关主题的真正参考,请查看OWASP 备忘单

#**Cross-Site Scripting Vulnerabilities?**
#for any programming language, the chars you should reject or handle properly are:
>     <   (     )     [     ]     '     "     ;     :     /     |

#for PHP, tools to handle with care:
strip_tags(), utf8_decode(), htmlspecialchars(), strtr()

#do Positive/Negative filtering
#check Encoding

#**SQL Injection ?**
#etc...

[/更新]

于 2012-09-02T06:25:00.157 回答
1

如果您正确清理输入和输出,则无需担心。

注意:我假设您使用 PHP 作为服务器端语言。

首先,将PDO(或MySQLi)与准备好的语句一起使用,以消除 SQL 注入的风险。

其次,任何将显示在您网站上的内容都应该针对 XSS 攻击进行清理(这样用户就不会注册 的用户名<script>doSomeEvilStuff()</script>)。

基本上就是这样,如果你真的很偏执,你应该使用白名单(只允许某些字符)而不是黑名单(只禁止某些字符),因为总会有人找到绕过黑名单的方法,但没有可以绕过白名单。

对于用户名,我认为没有必要超出/[a-zA-Z0-9_.\s!$%^&*\-+=]/您的想法。无论如何,不​​允许/[`<>(){}[]]/

于 2012-09-02T17:51:15.903 回答