《厚黑学》IT实战——CNNIC部之技术篇 - 厚颜堂(原创IT) - 厚颜

(这条文章已经被阅读了 430 次) 时间:2000-07-15 22:47:40 来源:厚颜 (厚颜堂主) 原创-IT

我在公司内主要从事技术工作,也就是说在历次的CNNIC调查中,我主要负责最后的投票环节。CNNIC的投票虽然有非常严格的认证,虽然有IP的限制,但对于我们这样熟悉各种流行加密技术的程序员来说,还是非常简单的。我一共编写过三次投票程序。其中两次是和CNNIC有关的,另一次则是互联网大赛。
去年12月的CNNIC的程序分析是我写的,下面是从我的笔记中找到的几个技术细节。
1.编辑和其他人员收集的用户资料是存放在我们的数据库中的,几乎所有的资料都是非上网用户的,所以没有Email地址。所以在投票的同时,我们必须在各种不同的WebMail上为他们申请Email,当然最简单的方法就是在我们自己的Server上申请。所以必须有一个动态申请地址的模块。
2.CNNIC的申请页面中包含了几个隐藏字段,一个是记录发起申请的时间,一个是最长为40位的变长字符串,该字符串无法解开,但估计和时间ip有关,也就是说可能是这个页面加密的密文。从算法来看,估计CNNIC将用这个字符串来验证用户的ip和时间,防止在httppost的时候人为改动这两个数值。所以必须把此数值予以保留。
3.投票后期CNNIC将采取用户Email认证,所以必须有程序浏览所有我们提交的用户信箱,确保确认信笺能够收到并自动回复。
4.基于以上3点,我们必须采用拨号和固定IP共同使用的方法,拨号IP用来提交表单,我们外部的Server中要有一台空闲出来保证查询Email的程序顺利运行。
所以最后我们的程序是这样写的:
模块一:从数据库中取得用户资料,在自己或其他mail上上申请Email用户,邮件地址密码重新写入数据库。该部分由一台连接在163主干上的UnixServer负责,由Perl编写。
模块二:自动拨号,从CNNIC服务器上申请页面,得到发起申请时间和那个加密字符串。从外部数据库中取得用户完整资料,延时后post出去。然后断线,再次拨号。此部分用C++编写,同时注意post时候httphead必须模拟成IE或Netscape,该程序可以分布处理,以避免占用过多电话线。
模块三:扫描所有用户的Email信箱,发现确认Email后自动回复,然后删除此用户信息,避免再次扫描。perl或php都可。
这样的程序我们两个人花了三天才写完,其实大部分功能是在去年七月以后就写好的,因为从那次投票之后公司就指示我们要准备好程序,研究分析CNNIC可能采取的机密方法,以准备舞弊。
至于选票的部分,去年的时候是从员工中征集的,一个身份证和名字10块钱,然后由打字小姐编成TXT文件,再转入数据库。至于今年更是公司发文件要求三地的员工统一填写表格,交由一个独立小组来完成。
我知道其他公司还有更厉害的手法,我见过用手工的方法投票,全部的员工都停止手中的一切工作,每个人发一个帐号回家投票,这部分的电话费公司报销。
今年投票采用了邮政的方法,所以要写一个连贯的程序几乎是不可能的,但我估计还会有许多公司在取得选票后继续采用程序post的方法。因为数万张选票表单用人来投,真的是很累的。
网络公司曾经是让人向往的地方,但当你在这里呆了超过三年,你就会明白所谓的“注意力“是怎么形成的,比如制造假用户数,编写程序提升pageview,做财务假帐增加营业额等等。而CNNIC的评比只不过是所有做假工夫中最基本的一项。
以上是我所知道的投票的内幕,请您务必将这些消息告诉给广大的网络用户,让他们知道一个真实的网络经济到底是什么样子的。