指认现场
- 2020年09月1日
路边停着辆警车,一群人闹哄哄地挤着。伸头张望一下,人堆儿里貌似两个小偷,脚并脚系着链子,被警察牵着指认现场。不好意思跟着围观群众起哄拍照,怪愚昧的,用埃及风画一下吧,大约就是图中的样子。
按 ‘ fun ’ 分类归档
路边停着辆警车,一群人闹哄哄地挤着。伸头张望一下,人堆儿里貌似两个小偷,脚并脚系着链子,被警察牵着指认现场。不好意思跟着围观群众起哄拍照,怪愚昧的,用埃及风画一下吧,大约就是图中的样子。
成都西站到郫都的有轨电车蓉2号线,27号刚开通的。 同日开通的还有地铁5号线一二期和10号线二期。
有轨电车轨道附近的村民找到了生活新乐趣,架起小竹椅,拎着保温瓶,排排坐,看电车。
一个人在微博上提问金星,当然金星本身是很好认的,最近日落时在西南方看到的醒目亮星就它一颗。比较有趣的是,当我用Stellarium模拟当地当时天空、好打消他疑虑时,惊奇地发现,软件模拟的金星方位角和他用手机指南针测得的相同,都是233°!
这可真是一架人肉量角器了,233这个数字尤其233333333。
注:他的手机把经纬度标颠倒了,南昌是北纬28°东经115°。
三星堆的这件“围裙”真是非常奇特。2016年7月30号,我第一次见到它时,它的两条“腿”是朝下的。过了短短两个月,9月25号,它的“腿”已经朝上了。阔别三年后,前天重逢,发现它又转了回来。可能它上面那些羽冠小章鱼似的花纹太难理解了。
进馆时和朋友说,三星堆不需要讲解的,除了年代很确定,其他一切都是谜,在“三星堆民确是地球人”的前提框架里,可以自由地猜想。三星堆馆方对这件“人身形牌饰”摆放方向的纠结,有力地佐证了我的这段话。😄
帮朋友代管一个问答站点。这个站点常常被发垃圾广告的盯上,而且使用注册发帖机器人,潮水般地往上冲。最近一次大规模攻击出现在10月15日晚上到16日早晨,总共产生了43000多条垃圾。
因为只是代管,所以我并不能接触到后台代码和数据库,只能使用网页管理界面来清理垃圾。而这些网页界面又有点残疾,例如,删除垃圾问题时,虽然提供了多选勾框,却只能删除顶头一个。
汇总一下,手边能用的抵抗工具有:
好在我还是个程序员,虽然并不穿格子装。当天下午,我用JavaScript写了个网页,把垃圾用户/问题的编号范围输入之后,点一下“清理用户”,它就会循环往复地按照原站点期望的格式生成form,并提交删除。按照每秒清理10个用户的速度,很快就干干净净了。
这个清理工具有点小花样:提交删除表格时,会在新窗口打开(否则退不回来,就没法循环执行),打开的新窗又要在5秒钟后关闭(否则任务一多,浏览器的窗口就密密麻麻了)。这样,浏览器不停地弹出新窗又关掉,忙得不亦乐乎的样子,煞是好看。
写好这个清理工具之后,把它往自己的网站上一丢,就可以放心地出去玩了。即使问答站点再遭攻击,我也可以从手机上远程清理了。执行清理代码的权限依赖于事先在问答站点上成功登录,所以也不担心链接泄露被网络爬虫乱点按钮。
接下来我又想:事后发现并清理,终究显得有点被动。当我忙着做图写东西时,还得随时盯着站点,就太分心了。JavaScript在读取外域网页时功能有限,所以我用PHP写了个新版本,能代刷网页,发现出事时,能自己清理。不过,本质上,这个工具就和注册机器人一样了,这大概就是传说中的“终于活成了自己讨厌的人的样子”。
自动防御工事的逻辑是:
刚刚写好新工具,一个小机器人就吹着喇叭发动了祭旗式的攻击(上图的UNDER ATTACK指的就是它),攻击从当天傍晚6点持续到次日凌晨零点。刚才说过,每次检测出批量攻击时,程序会先关闭用户注册半小时,然后打开,半分钟后再杀回来重新看一眼。对面这个小机器人在这每次间隔半小时的半分钟缝隙里,急急忙忙地创建垃圾用户,几个小时过去,它用掉了将近一百个帐户编号,也算是相当执着了。
今天早晨出了个巧之又巧的小意外。在网页刚刚启动,进行30秒热身刷新时,放在本站的服务器突然跳表,时间戳从23:01:32跳回23:00:20,呛死了我的防御工事。
它的判断逻辑是“假如新注册的用户数乘以某比率,大于刚才流逝的秒数,则判断是注册机器人攻击。”而这里,虽然新注册用户为零,但“刚才流逝的秒数”是个负值……万幸的是,我从做JavaScript版时,就设了个保险杠,此杠以内的老用户无论如何不能碰。所以虽然代码走进了“删除某些用户”的那一块,却立刻被驳回了。
感谢这个服务器提供的意外test case,这部分代码已加固,不会再被弄死了。
后记:晚上在本站服务器上把玩这个程序时,跳表现象又出现了。不禁大感兴趣,细细研究一下这个现象的来源。它发作得如此频繁,使我无法相信有个系统管理员坐在那里没事调时钟。更像是有多台负载均衡服务器,它们的时钟不一致。
写了个小网页,每5秒输出一次系统时间,在完美世界里,应该获得一条单调上升的直线。然而我实际得到的,是剧烈颠簸的数据。使用Excel画出来就更加一目了然,共有三条直线,说明至少有三台负载均衡,其中两台差异不那么大,而第三台慢了许多。如果拿中间一条线做参照的话,最上面的时钟快了23秒,最下面的则慢了108秒。