我开发了一个基于 Beancount 的账本托管服务 HostedBeans,欢迎大家来了解纯文本复式记账并试用我的服务。
标签 #随笔

妹纸说不要我搞社工库

这个博客创建于精子 7 岁第一天上学的时候,之后的十几年里精子的成长和价值观的改变是很大的。
所有的日志发布之后除了错别字都不会再修改,因此他可能并不完全同意早期日志中的观点。

简单说,社工库是这样一个神奇的东西,你只需要输入一丁点信息,如QQ号,或姓名,手机,就可以查到一个人的其他个人信息。除了QQ, 姓名,手机外,还会有身份证,住址等等,甚至包括他在各大网站的帐号和密码。

行外人可能惊奇于它是如何实现的。事实上网络比你想象得要险恶得多,各大互联网公司时刻都在收集你的个人信息。一个人,一个公司,总会有疏忽,这些资料一旦被泄露出来便无法挽回。久而久之,从这些泄露的资料中找到一个人显得十分简单。

所谓社工库就是要将这些泄露的资料汇总到一起,让查询更为方便,自动化。同时通过计算,在这些资料中挖掘出更多的关联。已经有人在这么做了,但我觉得我能做得更好,所以我开始对这个项目感兴趣。现在流行谈“大数据”,一个人掌握百G级别的数据并加以利用,是很有诱惑力的。

但这种项目的法律风险是显而易见的,我意识到,一旦我付出了努力,我绝不会放弃,也不会甘心于“内部使用”,我一定会(视图)将它做大,但相应的风险是我承受不了的。

于是我决定放弃这个项目,但我依然希望有人能够实现它,所以接下来我将描述关于这个项目我所设想到的所有技术细节,如果有人感兴趣,我可以进一步提供技术方面的指导,不感兴趣的看到这里可以洗洗睡了。

我决定给它起个代号叫做 BC.

BC计划由PHP编写,PHP是最通用,最容易部署的Web语言之一。事实上BC中,PHP的逻辑很少,大部分工作是数据库来完成的,所以使用PHP之外的其他语言来实现也没有问题。当然,如果你需要收费的话,还需要引入一个用户系统。

我决定使用三款数据库:MySQL, MongoDB, Memcached.

MySQL用于储存用户数据,和其他的一些数据量较少的信息。这是因为相比于MongoDB, MySQL还是更为稳定和成熟的。

社工库的主体由MongoDB储存,MongoDB在平时是只读的(平时需写入的数据在MySQL中).

每一份泄露出来的资料都有不同的格式,比如 .mdb, .xls, .sql, 纯文本等等。

我们必须将它们以统一的格式导入到MongoDB中,否则一切都是空谈。

我能想到的最为通用的格式是CSV, 上述各种格式都可以很轻松地被转换到CSV, 而PHP内置了对CSV的支持,更何况自行解析简单的CSV也并不复杂。

我们需要为每一份导出的CSV编写PHP脚本,以将这些数据逐条导入到MongoDB中,好在各个CSV差不多只是字段顺序上的区别。

每一份资料所包含的字段都可能不同,不过这也没有关系,反正MongoDB是无模式的。

至于查询,就很简单了,接下来我们讨论性能优化。

如果不对MongoDB进行索引,那么每次查询都需要遍历百G级别的数据,这是无法容忍的。

BC的情况略为复杂,用户名,QQ, 手机号,这些字段都可能被用作查询。

所以我建议,先使用1G左右,较为典型的数据进行实验,根据结果对查询量最高的2-3个字段添加索引。

分片是MongoDB的重要功能之一,通过分片可以将查询均衡到多台服务器,利用更多的内存来加速查询。

借助于分片,理论上BC可以实现无限扩充,至于片键,还需要通过之前的实验来选择,当然,我觉得更大的可能性是选择用户名做片键。

除了最为基本的查询,我们还可以提供更多的功能。

如通过用户名,查询到了一个手机号,我们可以自动地根据这个手机号继续查下去,挖掘出更多可能同属一个人的信息。

但这样,原来一次简单的查询就可能变成十几次查询,这将会对数据库造成极大的压力。

细想一下,如果没有新的信息(泄露资料)加入,那么查询的结果是不会改变的,所以我们要引入缓存。

Memcached是一种选择,不过实际上,使用文件来缓存已经足够。

我们缓存每一次查询的结果(可以直接是HTML输出)到文件,再有重复的查询时,我们无需经过数据库,只需访问文件缓存即可。

而每当有新的泄露资料加入时,我们要清空缓存。

对于服务器选择,我的建议是选择同在内网的若干台服务器,一台提供Web服务,其他的作为MongoDB以及缓存服务器。

选择2G内存的服务器,每台储存50G的数据。数据服务器不接入外网,Web服务器通过内网向数据服务器进行查询。

至于盈利模式可以选择会员制,以下功能都是收费点:

  • 是否可以使用索引之外的字段进行查询
  • 是否自动查找关联帐号
  • 是否仅可以查看缓存

附我前几天在邪红色论坛发的帖子:

我也想搞个社工库,大家意向如何

如题

我一毛钱的库都没有,但我有资金,有技术,有兴趣。

我对社工什么的不是很了解,我主要是对“大量的数据”感兴趣。

功能:

一个搜索框,可以搜用户名,QQ,邮箱,手机号码等。

查询结果可显示符合条件的帐号的更多信息。

同时,还会显示和这个帐号相关联的其他帐号(例如他们都使用了同一个手机号码).

同时利用这些数据我们还会搞一些公益的项目,如统计最为常用的密码等等。

盈利模式:

每月收取会员费,不限查询次数,未付费用户限每天1-10次查询。

显示关联帐号也算会员的高级功能。

上传新数据可抵会员费。

技术细节:

数据库使用MongoDB, 服务器打算用Linode的服务器,使用Linode的主要原因是数据服务器不用外网IP,直接用内网。

我会为每一个社工库写脚本,统一转入我们的数据库,进行统一的分析。

工期:

一个月出雏形,两个月正式运营。

FAQ:

Q:会员费大概多少?

A:预计如果是100G左右的数据,会员费大概在10元/月,如果数据量增加,会员费显然也要加。

Q:如何防御攻击?

A:因为数据服务器没有公网IP,不会被DDOS. 提供Web服务的服务器即使被DDOS,也可以随时再开一台新的服务器。

Q:不限查询次数的会员帐号如何防止被人互相借用,导致没人购买新的会员

A:登录帐号即可直接修改密码,对被盗帐号不予找回,看谁还敢借别人——敢借的都是真朋友,我们就不管了…

Q:邪红色有特别福利么?

A:有,等着。

电影:那些年,我们一起追的女孩

题目和正文无关。

我是个胆子很小,很不会说话的人,我喜欢写字,这样没有人打断我。

班主任给我的印象,就是一个没有感情的人,永远戴着面具,极少见她摘下来。不是我如何偏激,这是我见过的唯一一个这样的老师。

当白老师对我说“你这要是在我们班敢这么顶撞老师,同学早上去揍你了”时,为什么我听到了另外一层意思。  

我也试着和她说过一些心里话,但一点用都没有。她就好像一个没有记忆的机器人。“赶紧进入学习状态”,“上操动作都快一点”,“在学校就要穿校服”我不会记差一个字。自诩作为语文老师有很高的文学素养,但骂人除了“恶心”外也只有偶尔的脏字。

班主任的下限随时在刷新。

前一阵,班主任在批评一个同学:“你说你还像一个男子汉么?”,碰巧我对这个同学的人品略有不满,我在等班主任接下来准备讲什么大道理,哪怕是“是男子汉就要争一口气多考几分”也好啊。她说的却是“做人的底线就是按时完成作业”,真让人掉胃口啊。

除了作业,她的做人底线还有“做人的底线就是不迟到”,“做人的底线就是保持安静”,“做人的底线就是天天穿校服”。

说实话,这也不算什么,每个人都有那么几个口头禅,都有点不怎么注意的细节,我也承认老师这个职业是非常非常辛苦的。

电影中,最令我感动的是,当老师怀疑是班级中的同学偷了钱,让同学们写字条互相指认的时候。有不止一个人能够站出来,指出老师不应该这么做,指出自己信任班级里所有的同学。我恨当时这种事发生在自己班上的时候,自己没有这样的胆量,只有在纸上,我才能写出这样一段话。

班主任在上次汽车莫名其妙被划的时候,就像这样让每个人拿一个纸条,写自己怀疑谁,或者其他线索,所有人必须交。在接下来至少一个星期里,整个班级陷入了一种诡异的,互相怀疑的气氛,而且整个事件,到现在也没个结果。

还有一年前,一位同学在交费的时候以十个一毛钱抵一元钱,引起班主任不满。这件小事立刻被上升到道德高度,“这件小事折射出某些同学心灵深处的一些东西”。

接着班主任开始点人,让同学们评价谁对谁错。

今天,班主任见班级纪律混乱,打算制定一番新规定,以及一套不大合情理的惩罚措施。这也没什么,规则要有,惩罚也要有。

但我最不爽的是班主任一定要挨个点同学站起来说该如何惩罚违反规则的人,借同学之口,说班主任她已经想好的话,直到说得满意了,才让人家坐下。

最后好像这些规则惩罚,都是同学们定的一样。最后还不忘要每个同学都写张纸条谈谈对这个规则有什么意见。

试问这种情况下,班级的凝聚力从何而来?作为班主任还有多少威信?有多少同学说的是真心话?

我期待被全班同学揍一顿的那一天。

以上我简单地解释了一下今天我顶撞老师的理由,既然让我写检讨书,就是让我先找理由嘛。

然后我应当反思我的错误。

首先,对于一年前我指正班主任一个微不足道的错误事情,我现在意识到了,是我过于敏感,故意给老师挑毛病。

不指出这个错误也并不影响班主任以不太可靠的论据来教育同学,一直以来我都爱在不值得一提的小事上较真,这确实值得我反思。

而今天的事情,我过于冲动了,我本来可以以略微委婉一些的方式来表达自己的观点,或者直接保持沉默。不应当以非常偏激,讽刺的话来顶撞老师。

从小到大,几乎每个长辈对我的评价无外乎两点,聪明,较真(固执).

我正在写的另一篇日志想说,我并不聪明,也许只是较真而已。不然我不会花那么多那么多的时间,顶着那么大那么大的压力,去读各种老师们所谓的“闲书”。

较真,有利有弊,今后我要尽量做到,对自己,对知识较真。对人对事,能退一步就退一步,用德育处一位老师的话说,“分清理想和现实”,说合适的话。

不得不说,德育处白老师,和我们班主任绝对不是同一等级的,一开始没让我说话,等让我开口的时候,我就知道我已经输了。白老师看人很准,说我较真,固执,幼稚,都十分准确。唯独“缺乏正能量”这点我不能同意,摘我上个月所写的一篇日志[注1]:

“我是个很固执,很天真的人,也许你觉得用天真来形容我很不恰当。但我相信世界总是在向好的方向发展,我相信正义终能战胜邪恶,阴暗面会越来越少,我相信付出总会有收获,我相信会有纯粹的友情和爱情,我相信宪法早晚能够切实落实下去,我相信每个人都有像我一样天真的一面,你相信么?这不是开玩笑,我觉得一个人的世界观,在17岁可以算是初步形成了。”

不管你怎么认为,我的出发点一样是好的,我当然爱这个世界,我的祖国,我的班级。

我的字条:“没(hěn)意(bù)见(shuǎng),借同学之口,说你的话,有意思么”。

电影:致我们终将逝去的青春

流水账

今天和许小璐去看了这电影,第一次去电影院啊,不算学校带着去的话。

最近一个月,总能在各种渠道看到这部电影。电影看着看着,发现好多台词我都听过。

比如“也许我愿意跟你一起吃苦呢?”“但是我不愿意!”,只是当时不知道出自哪。

听说是赵薇的导演系毕业作品,我也没报多大期待。

电影本身

也许我不在那个时代,对电影中那一代人的青春,我没有什么共鸣,更何况我也没上过大学。

说实话我看得稀里糊涂,角色太多,都是学生,没太鲜明的特点,没有主次关系,记不住;头重脚轻,后半部分铺垫不够,情节发展显得有些莫名其妙;有的情节略做作(如开头寝室那段)。

我也只能挑这么几块骨头了,因为我没看出有什么主导精神,或者说电影想要表达的观念,甚至没有讲一个完整的故事,更像是一个个场景片段的堆叠。

也许这电影就是用来纪念那一代人的青春的,可能真的不是给我看的。

但我总是喜欢看别人的故事的。更重要的是这些零碎的片段,让我想到了我的青春,不是过去,而是在将来。

如果要挑一句台词展开来说,我想会是“我的人生是一栋只能建造一次的楼房,我必须让它精确无比,不能有一厘米差池”。

没有如果

我也希望我有一个幸福的人生,但我不认为人生是一栋整齐的楼房,整齐划一,精确无比。

我会把人生比作旅行,有无数条路可以通往目的地,每条路上的景色各不相同,每时每刻都在做选择,不能回头。

我不会为我的选择后悔,因为每条路上都有不同的风景,而且无法预见。我总是喜欢拿我初一从雨田退学的事情说事,那是迄今为止我人生中最大的转折点,很多事情从那以后都变了。

小学的时候,我是个非常好动,淘气的孩子,出了名的。小学六年级,我爸妈以买电脑为利诱,忽悠我去考雨田——这是个变态的初中。

初一我突然进入了雨田这个,全沈阳出了名的快节奏的初中,周围都是学霸,甚至我觉得我现在的高中都不及那竞争激烈。我一直想不通我在为了什么,这么起早贪黑地学习,当时也没现在这么多理论,没想太多,就是坚持不下去了而已。于是因为一点小事和父母闹了起来,一连半个月没怎么上学。再回到学校,我总觉得同学和我有距离了,看我的眼神和以前不一样了,再加上因为成绩下滑被老师特殊关照,开始变得自卑,想和同学们一样,但又不想上学,就这么矛盾着。这样的状态一直持续了半年,其间三天两头地不去上学,终于我还是从雨田退学了。父母又在这时候离婚,我发现我很难解释为什么我妈不在了,另一个女人又是谁,直到一年多以后我才释怀。就是从这个时候开始,我变得内向,和不熟的人话很少,一副天然呆的样子。

后来和雨田同班的同学聊天,发现一切都只是我想多了,他们从未觉得我从那逃离是很失败的,甚至觉得我很酷。

但现在即使我不再自卑,性格也很难改变了。

从雨田退学,我转到了我们家附近的一个普通的初中,不能说这里不好,只是这里普通人更多一点,我被分到了最后一个最“普通”的班。这一下,我从一个极端到了另一个极端,这里没有学霸,却有抽烟逃学打架的考试零分,班里就二、三十个人,教室显得空旷旷的,但老师也更有人情味,不像现在的班主任,总像戴着面具一样。

在这里我见到了更多普通人的生活,那些没机会考上高中的,父母老师眼中的“不正经”的孩子,他们也有自己擅长的事情,也有积极的一面,他们也有父母家人,他们不可能将来都去“捡破烂”,他们也会有自己的生活,也会很幸福。

现在想起来从小我就对电脑有种特殊的感情,在幼儿园的时候,家里短暂地有过一台电脑,当时我并不知道电脑可以玩游戏,也不知道可以上网——我根本不知道它能干什么,只是觉得很酷。从那以后,整个小学,我都喜欢在本子上,用笔来画电脑上那些图标,界面,游戏,画了六年,都没厌倦,这也许是我小学同学对我最深刻的印象之一,并不是画着玩,而是当成一个作品来画,虽然只是简笔画而已,我的美术一直不好。我父母爷爷奶奶,很多次开玩笑地说,也许你以后会设计自己的电脑,软件,游戏呢。

谁又能想到,我现在在做的事情呢?远远超出当时的想象。同样的话在三年前(2010.1)我也感慨过,现在看来,三年前的我又是另外一个模样。

现在随便拿出小时候画的东西,我就能够滔滔不绝讲个没完,只怕没人愿意听。我在想如果当时有这样一个大哥哥给我讲解会怎样呢?不,没有如果。

入门编程只是因为退学在家成天打网游,打到没意思了,碰巧一小学同学托我帮他研究一下如何破开机密码。从那以后,不可思议地,五年的时间我从未想过放弃。

我在想如果当初没人拜托我帮他查东西,或者我被第一个问题难倒,放弃,我现在会怎样的?不,没有如果,没有人能预见这些事情。

我即将做的下一个决定是不去上大学,对于比较守旧的长辈(很高兴我的父母不在内)来说,这是天大的事情。在我较为年轻的网友里(只算大学毕业或已经工作的), 认为我应该上大学的,和劝我千万不要上的,几乎参半,他们都有自己或朋友的故事,讲给我听。这更加坚定了我的想法:每一条路,都有不同的风景,而且你无法预见。更重要的是,我很清楚接下来的路我要怎么走,我不会后悔。

我是个很固执,很天真的人,也许你觉得用天真来形容我很不恰当。但我相信世界总是在向好的方向发展,我相信正义终能战胜邪恶,阴暗面会越来越少,我相信付出总会有收获,我相信会有纯粹的友情和爱情,我相信宪法早晚能够切实落实下去,我相信每个人都有像我一样天真的一面,你相信么?这不是开玩笑,我觉得一个人的世界观,在17岁可以算是初步形成了。

我当然知道社会的阴暗面,甚至比大多数人更多,因为你们接触到的很多信息都是被过滤过的。上周五,一位艺术招生培训的老师给我们讲他的故事,讲那种畸形的社会规则,我只是希望能够通过我的努力,至少能让我和我的后代,远离这种畸形的规则,不必再去做违心的事情。

我的青春

还有半年我就18岁了,成年了,一直都是孩子,什么事都有父母担着,在学校也只需要照着做就是了,以为长大是很遥远的事情。虽然长大不是一个干脆的分界线,但也意味着我要改变观念,开始独立了。

说实话我不觉得在资金来源上有什么问题,按照RP主机现在的势头,我甚至可以不必去工作也有足够的收入。我感觉和同龄人相比,我欠缺的是与人沟通的经验,甚至是“玩”的经验。这些年实在太宅了,一直泡在网上,毕竟学校那么小,志同道合的人太少。

虽然我这么叛逆,但我觉得我还算是一个标准的乖孩子,过分老实的乖孩子,没干过任何“出格”的事情,什么事我都敢摊开了讲。

不管什么片子,多么烂大街的情节,只要沾了青春,爱情,都能卖座。

以前我对初中那些秀恩爱的不以为然,谁说青春只有爱情。我一直觉得只有经济能够独立了,勾搭妹纸才会有底气,否则花着父母的钱终究不痛快。所以现在这是巧合么?现在才开窍是不是太晚了点。

大人常说赚了钱就知道不易了,知道省着花了。虽然我爸死活不同意按月计算收入,非要收回17年所有的成本才算赚钱。

而我恰相反啊,最近赚了点钱,但反而却花得更快的(也许是之前太小气了),我没想节约,只是想赚更多,直到够花。看来我就是不知满足啊,注定要奋斗啊,我的青春才刚刚开始。

这篇日志写了 6 个小时以上我会说么 … 算是我最文艺的日志了

精子生于 1995 年,英文 ID jysperm.

订阅推送

通过 Telegram Channel 订阅我的博客日志、产品和项目的动态:

王子亭的博客 @ Telegram


通过邮件订阅订阅我的博客日志、产品和项目的动态(历史邮件):

该博客使用基于  Hexo  的  simpleblock  主题。博客内容使用  CC BY-NC-ND  授权发布。最后生成于 2024-04-08.