最近搞出来的网站账号泄露的事情,引起了不小的风波。天涯,CSDN,这些大门户出事情,是不是有人在嘲笑,更多的人,在惊慌。
引起账号泄露的原因,walter分析如下。
1.网站数据库采用明码记录密码。比如账户walter,明码123764.如果你的数据库被入侵。那么账号直接暴露
对策:采用加密后的密码,存入数据库。
2.传送过程采用明码。好了,你说我采用明码,那么我现在md5加密存入数据库。只能说这样稍微安全了。不过如果你在POST密码的时候,采用明码,一些截获网络传送参数的病毒很容易就拿到用户密码了。如果你用过FireFox的Firebug大概就明白什么意思了。
对策:当用户点击提交的一瞬间,加密密码。让传送过程密码也加密了。
3.用户使用简单密码。这个问题有不少人,不少专家分析过了。大家采用123456,111111,654321,a123456,aaaaaa,这些密码的使用频率非常高。不过其实还好,有的人喜欢把不重要的账户采用简单的密码,重要的账户采用不简单的密码。
对策:限制简单密码,或者提醒用户密码过于简单,建议修改。
4.代码漏洞。04年见过很多网站可以从登陆口直接破解进去。比如你的判断登陆的SQL语句是这么写的通过账号查询到密码select * from users where username="walter" and pwd='1234589' 好了,很好办了。
如果我在提交username的文本框里输入walter' OR 1=1 --
SELECT * FROM USERS WHERE USERNAME='walter' OR 1=1 -- ' AND PWD='1234589'
从--后面,全部被注释了。利用这个原理,可以获取任意用户权限。
对策:写代码的时候,限制输入的特殊字符。或者分开检测。先利用账户,得到数据库密码,再利用数据库中的密码和用户的输入的密码对比。