代码说

code is poetry

代码说    
碎碎念:不在沉默中爆发,就在沉默中灭亡。  换一换

从陈皓的"痛恨手册"说起

作者:coderzheng 发布于:2014-12-20 20:55 Saturday 分类:Cs晚八点  阅读模式

酷壳网站上"关于陈皓"的页面中有一个"痛恨手册"[1],截图如下:

我曾经看过陈皓在某一年架构师峰会上的演讲,当时候他的演讲标题是"软件架构的趋势"。这是一个很大的标题,估计一般人是不会用这样的标题做演讲的。因为IT界里面程序员也是普遍具有文人相轻这种意识的,做.net的说php是SB,做php的说.net是废物。做C的瞧不起C++,做C++的瞧不起java。。。如果是一个普通人上台做这种演讲,恐怕当场就有人叫他滚出去。幸亏陈皓不是普通人,只是会场气氛比较沉闷,大家都不言语,默默地听他胡吹乱侃。

言归正传,关于陈皓的演讲我不便多说什么,印象中很深刻的是他说谭浩强的C语言那本书是本垃圾。我顿时心生愤怒,因为我就是看谭的书长大的,特别是他写的《C语言程序设计》。通俗易懂,形象生动的一本书,怎么会是垃圾呢?即使在软件开发领域传输了一些不怎么正确的意识,至少在普及编程基础知识方面谭是有巨大贡献的。我现在都还记得,当时看不懂指针的时候,硬是啃着谭的书看了这个部分不下十遍,最后终于弄清楚了指针是个什么玩意儿。

好像又扯远了。我虽然不认同陈对谭写的书的评价,但是我很认同他写的"痛恨手册"。

如果你看过特劳特写的《定位》,就会很清楚,这确实是一个传播过度的社会,而且心智备受骚扰。

不说每天internet上会产生多少篇良莠不齐的博文,光是每天电视广播的节目单就足够你眼花缭乱了。更不用说每天有多少无良商家掏空心思做广告为了诱骗你掏钱买他的产品:地铁口旁,人行道上,商场里。。。那些散发传单的人,他们不也是过度传播大军中的一分子吗?

从这个意义上说,豆瓣敏锐地发现了这里面存在的问题:做一个网站给大家来评论,受赞同多的显示在前面。这个网站势必会火起来,因为在这个心智备受骚扰的时代,豆瓣能为你过滤很多不必要的骚扰。比如这本《数学之美》,业界给出了很高的评价,但是你如果看了豆瓣下面这本书的第一条评论,恐怕不会还有多少阅读它的兴趣。

作为一个有好几年经验的程序员,我阅读过许多人的博客,并且始终保持对文章内容的高度防御心理。因为确实许多程序员给出的解决方案或者代码是经不起推敲的,比如:
在php里面,file_exists函数可以"检查文件或目录是否存在",但是这个函数只能作用在本地,或者说这个函数只在脚本运行的机器上有效,一旦将函数里面的参数换成远程地址(比如http://...这种形式),它就失效了。我们去百度找一下解决方案,大部分方案会像这样

但是这个函数并不一定能真正判断远程地址上的某个文件是否存在,因为网站服务器可能做了地址重写。也有可能是这样:用户所在的网络服务商(电信、铁通、网通等)会对用户发起的网络请求做拦截,此时可能出现即使目标url连通(请求的文件也存在),服务商拦截到这些请求也会自动对浏览器进行重定向,这时上面函数中用返回状态码200做判断这种方法就失效了。
因此,实际上没有一种可靠的方法能判断远程主机上是否存在某个文件,而只能判断某个远程url能否连通。能否连通和是否存在文件是完全不同的两个概念。

再比如,使用过uploadify的童鞋应该知道,这个上传插件可能会存在问题。安全性就是其中之一,这篇文章讲解了uploadify的跨域问题,确实uploadify是可以跨域上传文件的,但是真的会危及到站点安全吗?事实上,大部分成熟的开发者,都会对后台文件做权限控制,php里面比较典型的方法是统一让所有后台文件包含一个验证权限的php文件。以emlog为例,后台所有php文件(globals.php除外)都会先这样:require_once 'globals.php'; 这种情况下,即使uploadify想跨域也必然会失败,因为当前运行uploadify的脚本没有目标站点的权限。由此,我们自然应该想到,实际上真正危及到站点的安全问题应该表述为:用户在已经登录了emlog站点的情况下,点击了某个攻击站点的链接(并且恰好攻击脚本中的目标站点就是用户登录的站点),这个链接包含了uploadify的跨域上传脚本。这个安全漏洞的补救方法应该是比较简单的,在emlog的uploadify程序中,对上传部分做一个简单的token值验证即可。

最后一个例子是阮一峰的一篇博文:《JavaScript 运行机制详解:再谈Event Loop》。对javascript不熟悉的人很容易被作者的钻研精神产生敬佩的情绪。但是很不幸,这篇文章的很多认识是错误的,在朴灵的评注页面[2]可以很清楚得看出来:

。。。

。。。

由此看来,陈皓说的确实是对的,为了不误人子弟,还是不要乱出书出烂书啊。


备注:
[1]:原文链接:http://coolshell.cn/haoel
[2]:原文链接:https://app.yinxiang.com/shard/s8/sh/b72fe246-a89d-434b-85f0-a36420849b84/59bad790bdcf6b0a66b8b93d5eacbead


(全文完)



标签: cs晚八点

你可以发表评论、引用到你的网站或博客,或通过RSS 2.0订阅这个博客的所有文章。
上一篇: 又一次有趣的搜索经历  |  下一篇:Fork bomb