我应该禁用哪些用户名?

Mat*_*ati 14 username

我正在为一个Web应用程序进行用户注册,并且刚开始认为我不想让一些聪明/邪恶的人出现并注册一个用户名,如'admin'.

我应该禁用哪些其他用户名?数据库关键字

有关系吗?

在此先感谢您的回复!

编辑:我有安全保障.我更感兴趣的是,人们常常禁止某些名字阻止人们伪造权威,甚至某些垃圾邮件喜欢注册的词语.

Eli*_*jah 33

可接受的用户名

作为一般政策,我通过以下方式限制我设计的系统上的用户名:

  • 用户名必须低于ascii - 这不包括可用于欺骗用户的unicode用户名.例如,当您将unicode包含在用户名中时,名称"admin"和"admin"是单独的用户名,但可能与毫无戒心的用户相同.
  • 用户名必须是唯一的 - 不建议使用用户名作为唯一标识符,但如果将其用作电子邮件或登录,则将其作为唯一值仍然有意义.
  • 用户与保留关键字不冲突 - 禁止用户名成为常见的系统用户名非常有用,因为它是社交工程的一种途径,黑帽子可以使用它来欺骗系统上的用户.这意味着,应该阻止admin,webadmin,postmaster,root,administration,sysadmin等.更重要的是,如果您将使用REST样式的URL系统,请确保用户名不会与您将来可能包含的任何潜在路径冲突.
  • 用户名被清除 - 重要的是从输入的用户名中删除任何html或css标记,以防止XSS攻击或可能的用户冒充尝试.另外,不要忘记从用户名中修剪前导和尾随空格字符.

问题实际上取决于您的使用.如果您的用户名只是与网络论坛上的用户相关联的名称,那么这并不重要.但是,如果用户名是具有安全性问题的大型系统的一部分,则应该有一个策略.不正确的用户名的主要危险在于,黑帽子可以利用它们作为社会工程无辜用户泄露敏感信息的一种方法.

有趣的是,在发布这个答案之后,我检查了Stack Overflow的用户名验证,它确实禁止像我建议的unicode字符.但是,它确实给出了一个神秘的错误,说用户名是"保留的".


Eva*_*her 15

http://xkcd.com/327/

但是,严肃地说,过滤掉包含潜在恶意代码的名称是个好主意.除此之外,任何反仇恨/巨魔/垃圾邮件/*审查都取决于您和/或您的社区.

  • 请记住,清理数据输入并不一定意味着禁止像Robert这样的名字; DROP TABLE学生; - .消毒它可能意味着在你需要的地方正确地逃避它; 在SQL查询中以一种方式转义,在URL中以另一种方式转义,以另一种方式转义为HTML等. (2认同)

Wil*_*ung 13

保持人们不被"授权发声名称"欺骗的最好方法就是以某种其他方式区分"权威"(即你在帖子中有特殊的文字颜色,你有特殊的图标或头像等等) ).


Joh*_*ley 6

如果您的用户名构成了URL的一部分,则可能需要禁用以下部分或全部内容:

  • API
  • 公测
  • 博客
  • 演示
  • 论坛
  • 论坛
  • 苹果手机
  • 移动
  • 安全
  • SVN
  • 博客
  • 欢迎
  • 万维网


Jim*_*ran 5

说真的,您需要确保在进入数据库之前正确转义任何用户生成的数据(不仅仅是用户名).这将确保您的用户无法进行SQL注入攻击(例如由Evan Meagher链接的Bobby Tables卡通).如果您的用户想要使用"Robert'); DROP TABLE"这样的用户名登录,那么请让他们冷静下来.只要确保它不会损害您的数据库.

同样,如果您在网站上的任何位置显示用户名,请确保您的html特殊字符已正确编码,以防止他们将<script>标记和javascript注入您的输出(XSS漏洞).例如,用户名为"<script> alert('Hi'); </ script>"的用户永远不应该看到警告框.

如果没有理由为什么你应该禁止看起来像SQL注入或XSS攻击的用户名,只要你绝对确保用户不会对系统造成任何伤害.

如果您提供与用户名相关的任何电子邮件服务(例如网络邮件服务),您将需要确保用户无法使用RFC 2142保留的电子邮件地址之一进行注册(或者您在启动之前自行注册它们.

最后,有一个非技术原因.如果该人的用户名出现在网站的任何地方,则可能需要禁止用户名,如"admin","administrator","root","sysadmin","webmaster","版主",因为这些用户名可能意味着某种形式拥有或控制该网站给另一个用户.您可能只希望网站所有者能够暗示他们拥有该网站.在所有情况下都可能不需要这样做.


Sco*_*ock 5

不允许任何贵公司商标的组合是值得的.从法律角度来看,它不仅有意义,而且还可以防止恶意访问者像组织成员一样出现.