《web应用程序安全性剖析》——管理用户

来源:互联网 发布:同声翻译软件手机版 编辑:程序博客网 时间:2024/06/11 05:58

之前都没有仔细想过用户管理这里有这么多需要考虑的部分。

用户通过账号以及密码来登陆,这里的机制对于安全的设置也值得研究。

最重要的是密码的管理。

密码可以通过暴力攻击等方式来进行。或者像之前CSDN出现的问题,由于使用明文存储,导致破解后的灾难。亦或者是做映射关系。比如在A网站使用这个邮箱和密码,在另一个B网站也使用同样的账号和密码。那么这两个网站其中一个被破解了,也会导致另一个网站资料的泄漏。

所以,密码要实施强密码。诸如限制长度,不允许密码中出现用户名等等方式,要求具有一定的复杂性。太简单的密码容易被暴力攻击等破解。甚至是用户的“About Me”页面,收集用户的子女姓名、生日等信息进行猜测,破解。

还有就是空闲账户的控制,空闲账户,只较少登陆但有效的账户。由于较少登陆,他们难以发现账号被盗用。要限制这些空闲账号。如逾期失效等。

那么就要对密码进行管理了。

存储密码有三种,明文,密文,单向密码哈希。最后一种最好。因为密钥也有可能会泄漏。

当密码丢失时,不要实际找回密码(以防欺骗等),而应该只是设置或重置密码。

同时,应该为密码设置时效性。针对不同的应用场景,时效又应该不同。

并且,应该保存密码历史记录。防止用户在两三个密码间相互交替等情况。这也不是很安全。

尽量不要分配临时密码。因为临时密码比较简单(如账户号+几个数字),这样子很多用户会懒得更改。或者,强制要求用户新登录时,必须更改临时密码。或者临时密码足够复杂,难记。

很多修改密码时,使用提示问题。这应该成为一个辅助手段,而不应该是主要手段。因为用户信息,容易在网上获取到。而且有些内容,容易暴力破解。比如母亲姓氏、最喜爱的电影等等。这些答案范围可以限定。可以用多个的组合,比如喜欢的男艺员,女艺员,变性艺员作为一个问题。不建议使用用户自定义的。因为一般用户不清楚哪些问题安全性高。避免很多人都会选择相同答案的问题。



原创粉丝点击