从GURUDigger的一个bug说起

申请gurudigger的邀请码支持没得到系统回应,就直接发邮件要了一个。

注册完完了完 然后发现了一个比较严重的bug

GURUDIGGER采用了 http://gurudigger.com/users/username 来指向个人主页,就是直接将username放入url中作为标定的用户。

但是GURUDIGGER在检查用户名是否重复的时候没有忽略大小写,这有什么问题呢?问题就是在我注册adam这个用户之前,系统里已经存在了一个用户名为Adam的用户,但是因为系统不做大小写忽略,我得以成功注册。当注册之后,查看个人主页,我们知道url是不区分大小写的,而Adam注册之前,所以当我想访问我自己的个人主页,即http://gurudigger.com/users/adam时,总是显示的是Adam的信息。

 

如果要将数据库的中的数据放入url中,注意大小写问题,因为url是忽略大小写的,所以你的数据库逻辑在处理这一数据时,应该也是忽略大小写的,如果不忽略大小写, (写完后又查了查,域名是不区分大小写的,至于后面的url,由系统决定,因为windows本身的文件系统不区分大小写,所以win服务器不区分大小写,而linux/unix服务器区分大小写)那么应该可以用哈希的方法标定出一个唯一的不重复id来识别用户的身份。

 

好的系统不代表没有bug的系统, bug无处不在。。。。