php – 用户名(和密码)中的Unicode?

After reviewing this我意识到我还有一些关于这个话题的问题.

出于合法的安全目的,是否应该“遗漏”任何字符?这包括所有字符,例如括号,逗号,撇号和括号.

在这主题上,我承认不明白为什么管理员似乎喜欢强制执行“你只能使用字母,数字和空格”规则.还有什么可能成为安全漏洞或破坏我不知道的东西(即使是ASCII)?据我所知,在我的编码日期间,绝对没有理由禁止任何角色使用用户名.

通常,这些字符可用于在程序中注入恶意代码.例如 SQL injection(引号,短划线等),XSS/CSRF(引号,鱼括号等)甚至是在代码中的其他地方使用eval()时的编程语言注入.

当您作为开发人员正确清理用户控制的输入/输出时,即使用HTTP请求进入的所有内容时,这些字符通常不会造成伤害;标题,参数和正文.例如.参数化查询或在SQL查询中内联它们时使用mysql_real_escape_string()以防止sql注入;在使用HTML内联它们以防止XSS时使用htmlspecialchars().但我可以想象管理员不信任所有开发人员,因此他们添加了这些限制.

也可以看看:

> OWASP on PHP top 5 vulrenabilities

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...