CSDN明文口令泄露的启示

CSDN明文口令泄露的启示

2011年12月21日晚,某计算机专业的大学生寝室,某同学大叫到:“兄弟们,最新的日本XX女星的AV片已经下好,大家快过来看啊,相当精彩啊~~~”,然而,这个寝室里的其它同学似乎没有听到这哥们的呼喊,于是,这哥们又叫了三次,没有人理他,因为大家都在眉飞色舞地谈论着CSDN的明文密码和用户帐号泄露的事情,并在网上查找着下载CSDN那600万的用户数据……上面这个故事是我编的,只是想描述一下昨晚的情形。

其实,CSDN明文密码并不是什么稀奇的事情,我是2000年注册CSDN的吧,当时找回口令的机制就是把口令直接传回来了,这一定是明文了。去年去CSDN参加移动互联网沙龙的时候,范凯和蒋涛说过明文密码的事,不过他们说的是很早以前的事了,而且一笔带过了。1年后的今天,事情又暴了,可见,“出来混的,迟早是要还的”这句话是几近真理的。

我在以前的BLOG里就提到过CSDN的明文密码(在“如何设计用户登录功能”一文)和 帐号泄露(“如何设计自己的口令”) 的事(由此可见,酷壳里的很多文章里的事都应验了,因为我知道“出来混的,迟早是要还的”)

可悲吧?还是程序员的网站呢,明文口令和用户信息泄露有悖于一个程序员网站的称号

泄露的密码分析

我昨晚下载了www.csdn.net.sql文件,并分析了一下这个文件,经过各种awk, grep, sort, uniq, sed后,下面是我看到的东西:

  • 有近45万的用户使用 123456789 和 12345678 做口令。
  • 有近40万的用户使用自己的生日做口令。
  • 有近15万的用户使用自己的手机号做口令。
  • 有近25万的用户使用自己的QQ号做口令。
  • 设置成弱口令的用户占了590万,也就是那种就算你用MD5或是SHA散列的也能很快就被暴力破解出来的口令。
  • 只有8000多个用户的口令里在8个长度以上,并有大写字母,小写字母,数字,并不在字典表里。

(很好,这回泄露的还不单单只是明文用户密码和用户邮件,还有用户的手机号,生日和QQ号。挺好的)

下面,我们来看一下top 100的口令是什么?(第一列是采用这个密码个数,第二列是密码,我擦 dearbook是什么啊)简单地看了一下,top 一万的口令都很SB。比如什么woshishui, 123abc, aaa123456,01010101,haohaoxuexi,msconfig 相当的2B,还有P@ssw0rd,q1w2e3r4t5,看似文艺,实际很2的口令…. (可悲吧?还是程序员的网站呢,自己设的口令有悖于一个程序员的称号

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (46 人打了分,平均分: 4.00 )
Loading...
三个事和三个问题

三个事和三个问题

从9月份开始,是很多在校毕业生的择业时期,有很多很多朋友写邮件给我让我帮他们参考如何选择工作(对不起我无法在第一时间回信,因为实在是太多了,我那繁忙工作和生活都没办法让我能即时回复),并且还有一个已经工作了多年的技术很强的朋友因为跳槽没有跳好,也和我说了很多他 的感受。从这个过程中让我有了很多感触和想法想和大家分享,本来这篇文章1个月前就想写的,只是要写下来时不知道如何整理这么多的东西和思绪。今天也不知道,但是一定要写了,不然,我的这些感触和想法就会越来越不新鲜了。

注:这篇文章里的所有的故事都是真实的其不可避免地会加上我强烈的个人情怀和个人色彩叙述的过程可能比较乱,但我能确保这些都是我的肺腑之言

第一个事:网友的来信

第一个故事是一个杭州的学生的故事,其有两个offer,一个是北京的(雅虎研发中心),另一个是杭州的一个做商业智能软件的公司,也是美国的上市公司。他在给我的来信内心纠结地说:

雅虎其实很想去,虽然这几年雅虎走下坡,但还是大公司,牌子硬,里面牛人也多,有助于自己水平的提升。但感觉北京环境不好,生活不是那么舒坦,也搞不定户口,所以我去的话也只能干个三五年就得考虑跳槽到别的城市安家落户了。这么一跳,在北京积累的各种资源却又带不走 。

杭州,比北京更适合生活,户口不是问题,朋友多,这个公司也比较宽松,有较多的业余时间跟朋友们一起搞点东西。而且这些年这个公司上升的势头,在国内设研发中心也才4年,规模不大,公司本身规模也还不大,我觉得机会还不错。再加上离家近,对家人大概可以多些照应。

关于未来换工作,雅虎做的是搜索,广告,移动互联这几个方面的,东西在互联网企业里面都比较通用,以后跳槽的话,面相对比较宽。杭州的那个做商业智能的公司,据了解其他做的比较好的也就几个大公司如SAP,IBM有这方面的业务。

我和这个同学发了邮件,也打了长途电话,我基本上是这样回复的——

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (74 人打了分,平均分: 4.57 )
Loading...
Web开发中需要了解的东西

Web开发中需要了解的东西

在StackExchange上有人问了这样一个问题:What should every programmer know about web development?(关于Web开发,什么是所有程序员需要知道的?)里面给出的答案非常不错,所以,我翻译转载过来。 顺便说一下,StackExchange真是非常好,大家可以对同一个答案做贡献和修订,看看这个问题的修订过程你就知道了——专业的问答网站应该怎么去做。这就是我在这篇文章中也说过真正的用户体验是什么样的

好了,下面是正文(我对原文做了一些批注,也许不对或有误导,请大家指正)

下面的这些东西可能对于大多数人并不陌生,但是可能会有些东西你以前并没有看过,或是没有完全搞懂,甚至都没有听说过。(陈皓注:我相信当你看完这个列表后,你会觉得对于我国的Web开发有点弱了,还是那句话,表面上的东西永远是肤浅的)

接口和用户体验

  • 小心浏览器的实现标准上的不一致,确信让你的网站能够适当地跨浏览器。至少,你的网站需要测试一下下面的浏览器:

最后,你可以使用一下这个工具 来看看你的网页在不同的浏览器下是怎么被显示出来的(陈皓注:这个工具就是以前本站介绍过的在不同浏览器和平台上检查你的网站的兼容性

  • 多考虑一下人们是怎么来访问你的网站而不是那些主流的浏览器:手机,读屏软件和搜索引擎,例如:一些Accessibility的东西: WAI 和  Section508, 移动设备开发:MobiForge.
  • 部署Staging:怎么部署网站的更新而不会影响用户的访问。 Ed Lucas的答案 可以让你了解一些(陈皓注:Ed说了一些如版本控制,自动化build,备份,回滚等机制)。
  • 千万不要直接给用户显示不友好的错误信息。
好烂啊有点差凑合看看还不错很精彩 (53 人打了分,平均分: 4.23 )
Loading...
一些有意思的算法代码

一些有意思的算法代码

Keith Schwarz是一个斯坦福大学计算机科学系的讲师。他对编程充满了热情。他的主页上他自己正在实现各种各样的有意思的算法和数据结构,http://www.keithschwarz.com/interesting/, 目前这个网页上有88个(见下面的列表),但这位大哥要干135个,你可以看看他的To-Do List

从这个列表上,我们可以看到,他从去年7月份就在自己实现这些东西了,我把他实现的这些算法转过来,

  • 另一方面我希望这个事可以影响到一些正在学习编程的人。看看别人是怎么学习编程的,希望对你有借鉴作用。
Name Link Date Added Language Description
Binomial Heap (link) 7‑24‑2010 C++ An implementation of a binomial heap data structure for use as a priority queue.
Bounded Priority Queue (link) 7‑24‑2010 C++ An implementation of a priority queue with a fixed upper limit to its size..
Matrix (link) 7‑24‑2010 C++ A collection of classes for manipulating matrices.
VList (link) 8‑16‑2010 Java An implementation of the List abstraction backed by a VList.
Function Wrapper (link) 8‑16‑2010 C++ A C++ wrapper class around unary functions.
String (link) 8‑17‑2010 C++ An implementation of a string abstraction that uses the small string optimization.

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (26 人打了分,平均分: 4.27 )
Loading...
如何设计“找回用户帐号”功能

如何设计“找回用户帐号”功能

因为《腾讯帐号申诉的用户体验》一文中好多人觉得腾讯申诉是世界级先进的,并让我拿出一个找回用户的帐号的功能来。本来不想写的,因为大家看看其它系统的就行的,但是,很明显有些人就是很懒,也不会思考,而且不会观察,所以,我就只好写下这篇科普性常识性的文章。

在行文之前,我得先感谢腾讯公司的至少30名员工在《腾讯帐号申诉的用户体验》一文后的回帖(我STFG(Search The Fucking Google)看到了你们使用的那个固定IP在各个大学论坛上的腾讯的招聘广告),我感谢你们主要有两点:

  1. 你们有半数以上的人留下的是gmail而不是QQMail/Foxmail的电子邮件,这点让我感到很欣慰。
  2. 你们在加班到晚上11点的时候都能在本站回复,的确如你们的Andy Pan所说,你们的核心竞争力很强,包括水军方面。

好了,让我正式谈谈这个设计。找回用户帐号通常就用三个事就可以了:邮箱安全问答手机

邮箱安全问答手机

大多数的系统都会使用邮箱和安全问答,这足够了,很多系统直接用邮箱做帐号名(Apple ID,Facebook,新浪微博 ….),这样一来,就算你的系统口令被盗,帐号的是改不掉的,于是你可以用邮箱找回(注:这些系统都会验证你的邮箱是否正确)。但是,如果用邮箱做帐号,会导致你的邮箱暴露了,这样为成为垃圾邮件的受害者,而且如果你还比较2的把邮箱的口令和帐号的口令设置成一样的,那么就相当坑爹了(你可以看看本站的这篇文章——如何设计你的口令)。所以,但凡是用邮箱用为帐号的系统都不会让人看到你的注册邮箱,比如,大家就不知道我新浪微博帐号注册的邮箱,就算是知道也应该是受信的人知道(新浪微博帐号的邮箱地址的默认可见度是“你关注的人”)。

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (40 人打了分,平均分: 3.88 )
Loading...
腾讯帐号申诉的用户体验

腾讯帐号申诉的用户体验

前面写过一篇“腾讯,竞争力 和 用户体验”批评了腾讯,于是在我的微博上和博客上收到了一些反对意见,基本上是说腾讯产品的用户体验做得很好,很方便,等等,还列举了N多的例子,以及说过什么用户数量为王的言论,让我感到我应该写一篇博客。当然,如果我们只看某个技术层面的东西的话,我同意,QQ的一些产品还是很易用的。但是我们还是要看得更深一些。Effective C++的作者Scott Meyers 在《More Effective C++》中说过——“美丽的是肤浅的表现”。   我借用一下这句话,认为QQ是好的产品的观点是肤浅的认识。

网上有大量的文章说QQ扫描硬盘啊,说QQ收集用户信息啊,你可能忘了这些。前段时间的3Q大战的那个“艰难的决定”,你好像也忘了。还有狗日的腾讯,你也忘了。包括QQ可以预防犯罪的新闻,你可能也忘(这本就是一个容易忘事的民族)。你已经被QQ的用户体验迷住你的双眼,觉得QQ无敌于天下,就像这个微博 以及微博里的回复一样在赞叹QQ注重细节一样,那些人在看到QQ的Mac版上向Steve Jobs感谢的字样激动不已。我感到你被一块红布蒙住了双眼也蒙住了天,我问你看见了什么,你说你看见了幸福 ,这个感觉真让你舒服……(对不起,一不小心我就在唱歌了,So So Sorry)

回到正题,你会说,我们在谈技术,不谈这些非技术的。好吧,我们来看看技术上的东西。我和大家说一下这两天我的真实经历。

两天前,我的QQ号被“恶意投诉”,封了号。腾讯让我走申诉流程,于是我看到了下面这些步骤:

  1. 填入我的真实姓名,身份证号,地址等我的真实信息。 (盗号者也可以填)
  2. 填入我的手机号,并要用这个手机号向腾讯发个短信以收取验证码。(盗号者的手机)
  3. 填入我以前曾经使用过的QQ密码 (盗号者盗到的密码)
  4. 填入我是什么时候,在哪里注册的QQ (盗号者可以填忘记了)
  5. 填入最近3年来,我在哪里使用过QQ (盗号者也可以填忘 记了)
  6. 邀请QQ好友来帮助申诉,越多越好,需要填号好友的QQ号和真实姓名。 (盗号者也可以用自己的小号,这些小号可以加你为好友)

这已经是非同寻常的流程了…… 从这个申请过程中你看到了什么?你是否看到了这些东西:

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (63 人打了分,平均分: 4.24 )
Loading...
一些文章资源和趣闻

一些文章资源和趣闻

下面是我这段时间来收集的一些有意思的东西。本站这样的文章还很多,如这个这个这个

Javascript Garden,这是学习Javascript最好的网站了。http://bonsaiden.github.com/JavaScript-Garden,这个文档由两具StackOverflow的人写成, Ivo Wetzel(Writing) 和 Zhang Yi Jiang (Design),表示敬意。

想看看Web开发有哪些技术吗?你得看看这个网站:http://stackparts.com/,他对目前几乎所有Web上用得到的技术都分了个类。下面是个抓图。

Mozilla的安全编程规范 https://wiki.mozilla.org/WebAppSec/Secure_Coding_Guidelines Downloads associated to Software development

PHP,Perl, Ruby, Python语法比较http://hyperpolyglot.org/scripting?utm_source

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (14 人打了分,平均分: 3.29 )
Loading...
腾讯,竞争力 和 用户体验

腾讯,竞争力 和 用户体验

自从那篇rant了一堆公司都的文章发布来,得到了大家的关注,有些朋友让我写一下腾讯,在我的微博上(@左耳朵耗子)还有位腾讯的朋友让我也评价一下腾讯。本来不想写的,觉得腾讯没啥好说的,但是因为下面的几个原因,让我有点坐不住了:

  1. 这两天知乎上的一个“腾讯的核心竞争力”的贴子在微博上被很多人所推崇。
  2. 还有一个网友发邮件给我说让我别rant了,宁可C2C也比rant有意义。
  3. 我周末的时候去豆瓣和他们交流了一些关于产品和用户体验方面的话题。
  4. 还看到了Jeff Bezos的访谈文章《贝佐斯:亚马逊是科技界唯一一家低利润公司

于是就有了这篇文章,但不想再rant了,我希望这篇文章更有价值一些,但是我喜欢的调侃的风格依然,因为这是我觉得能让文章有趣味的方式。

腾讯的“价值”

首先我想说说腾讯的价值。根据我那篇 rant 的文章来说,我觉得人要活得有价值,事业也要做得有价值。我不太待见那些没有价值的东西。所以,我在那篇文章里让大家都思考了一个问题,我们做这个事的价值在哪里?所以,要评论腾讯,就得想想他的价值。众所周知,腾讯的起家是通过IM软件QQ,当然,他有段时间几乎快不行了。不过挺过来了,造就了这么一个帝国。所以,腾讯的价值应该是即时通讯,让大家的沟通变得更顺畅,这点腾讯的确做得非常强大,视频,音频,涂鸦,抓屏,表情,Q币,共享,群聊,新闻,弹窗,离线文件,远程协助…… 的确做得非常地体贴用户。除了扫描硬盘文件有点那个。

但是,最近的腾讯变了(当然有人说他也没有变,QQ本来就是抄来的),有什么就抄什么,没有创意,山寨大王,成了腾讯的代名词。马云也说过:“现在腾讯拍拍网最大的问题就是没有创新,所有的东西都是抄来的”。网上还有很多,什么“一直在抄袭,从未超越过”或是“一直在山寨,从没反省过”等等的话,还有“自从有了XXX,腾讯就出了XXX”的文体。

但是,你们都错了,包括马云,我不同意你们,我觉得这正是腾讯的价值所在

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (77 人打了分,平均分: 4.43 )
Loading...
来信, 创业 和 移动互联网

来信, 创业 和 移动互联网

上一篇博文翻译了Steve Yegge的rant,这两天有一些事让我也想rant一下(所谓rant就是一篇巨长无比的抱怨和说教),不过无论是从见解还是恶搞来说肯定没有SteveY的水平高,所以,这篇博文只是单纯的rant,看标题就知道了,就像“篱笆,女人和狗”一样,乡土味实足。所以,下述的一些观点未必正确,也未必靠谱,也就是我的个人唠叨罢了,我想到哪里说到哪里。(篇幅较长,见谅)

引子

我前两天,收到一封邮件,一位快要毕业的的大学生问我,是去百度,还是去创新工场?他在来信中说,从个人道德价值观来说,他想去创新工场,要远离流氓企业,不然会有狼狈为奸、助纣为虐的感觉,对不起自己。但是创新工场那边情况不熟悉, 不知道怎么选择,并问我现在比较热的移动互联网靠不靠谱。

正好这两天我在微博里看到大家转贴李开复的几个让毕业生创业的微博,比如,这个微博,还有 这个微博。呵呵。

李开复:有关毕业生高科技创业,我的建议:1)创业需要理解趋势、汇集精英、实践经验,因此大学毕业不要主导创业,只能参加创业公司,2)最好远在毕业前就寻找创业公司实习机会(无偿亦可),因为也许创业并不适合你或你想象那样,3)毕业时若想学习创业,最好到创业公司。到大公司学习能学技术但不够针对性。

还有前两天的“移动开发者大会”,然后,又有一个以前的同事和我谈了一下他创业的事以及他的想法,正好又在网上看到罗永浩同学的那个“一个理想者创业的故事”的演讲。还有一些做blog插件的团队希望我能在酷壳上安装一下他们的插件。等等,等等。所以,让我有了这个可以rant的写作情绪。

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (105 人打了分,平均分: 4.60 )
Loading...
千万别用MongoDB?真的吗?!

千万别用MongoDB?真的吗?!

某人发了一篇Don’t use MongoDB的血泪控诉,我把原文翻译如下,你可以看看。不过,我想我们还要去看看10gen CTO的对此事的回复,我们还要去在Reddit上看看大家的说法,10gen CTO的对此事的回复后面也有一堆人在讨论这个事,还有一些程序员开始去读MongoDB的源码了,呵呵。看样子,说MongoDB的这些事并不是真的。

10gen CTO 对此事的并不完全知道,其在回复,对些文中的每一条都做了回复。我把其回复的大体意思也放在原文中。不过,很有意思的是那些程序员的讨论。建议大家看看。

正文

因为各种政治原因,我这段时间没有说什么,但是现在我觉得因为要对社会负责,所以我要阻止大家不要把你们的业务放在MongoDB上。

我的团队在一个有巨大用户量(一个有千万用户级的大型的公司)系统上使用的MongoDB,这个系统上让MongoDB有非常大的负载。早期,我们以为使用MongoDB会像10gen公司(MongoDB背后的公司)宣扬其在长期性能扩展有很多好处。但是,我们错了,而这个rant(长篇抱怨)就是为了让你不要相信那些所谓的成功经验而和我们一样犯了大错。如果有人能避免你上当,那么就得我写这么多。希望能警醒更多的人。

注意,对于和10gen打交道的经历来说,他们给予了我们充分了热情和帮助,而且非常地好。但是这并不能成为我不告诉大家他们的产品失败的理由。

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (21 人打了分,平均分: 3.57 )
Loading...