After reviewing this我意识到我还有一些关于这个话题的问题.
出于合法的安全目的,是否应该“遗漏”任何字符?这包括所有字符,例如括号,逗号,撇号和括号.
在这个主题上,我承认不明白为什么管理员似乎喜欢强制执行“你只能使用字母,数字和空格”规则.还有什么可能成为安全漏洞或破坏我不知道的东西(即使是ASCII)?据我所知,在我的编码日期间,绝对没有理由禁止任何角色使用用户名.
通常,这些字符可用于在程序中注入恶意代码.例如
SQL injection(引号,短划线等),XSS/CSRF(引号,鱼括号等)甚至是在代码中的其他地方使用eval()时的编程语言注入.
原文链接:https://www.f2er.com/php/135779.html当您作为开发人员正确清理用户控制的输入/输出时,即使用HTTP请求进入的所有内容时,这些字符通常不会造成伤害;标题,参数和正文.例如.参数化查询或在SQL查询中内联它们时使用mysql_real_escape_string()
以防止sql注入;在使用HTML内联它们以防止XSS时使用htmlspecialchars()
.但我可以想象管理员不信任所有开发人员,因此他们添加了这些限制.
也可以看看: