老婆所在公司( 100offer )目前正在举办一个活动,投票就给维基百科捐款(上限 10 万),目前才 2 万多。
我发现了一个漏洞:
照理来说投票类功能会根据 IP 啊、访问间隔啊吧啦吧啦做一些限制的,但仁慈的攻城狮显然是为了能够给维基百科予以最大的支持,所以这个限制很弱鸡!!
只要每次投票后刷新页面,就可以再次投票啦。
9.23 更新: 需要增加图片验证码识别及计算模块
害得我都想写个脚本来自动刷票了,当然为了不影响投票结果的公平性,我觉得应该遍历所有参赛作品并投票, Hia~Hia~Hia~
他们公司的 CEO 都说了可以拿 10 万出来,我觉得可以替维基百科『笑纳』。
PM 已到位,思路清晰,只差程序员了。
有没有志同道合的小伙伴? 感兴趣请留言。
附上活动页面: http://i.100offer.com/projects
看到被指责某些行为的不当,我承认这不是我的本意。
最初只是以戏谑的口气来说这事。其实在最初了解到会以投票形式进行评选时,我就提出了防刷票机制的想法,如果换做我,我会怎么来做?再站到对立面,我会如何来破解?
随后又想到了验证码 vs 验证码识别、 Spam vs Anti-spam 、爬虫 vs 反爬虫 以及 图灵测试...( AI 科幻题材的美剧看多了)
这些技术的发展互为因果,就像每年度都会举办的黑客大会,有许多新奇技术、手法的碰撞,也许在这攻与防的过程中,技术才会有更大的进步。
之前在公司负责账户安全模块的设计和开发,恰好是 CSDN 等 IT 网站爆出密码明文存储牵扯到用户账户安全的时候。当时做的安全措施异常复杂,已经影响到普通用户的操作了,有些做法至今还能在其它产品中找到影子:
1 、强制定期更改密码(如一个月);
2 、最新密码不能与最近使用过的 5 个密码相似;
3 、密码必须包含特殊字符,且满足一定的排列要求
......
直接导致我常用的几个密码在一段时间后无法再次使用,新设置的密码又记不得,重置一次又一次,已经抓狂了。
技术不应该成为影响用户体验的障碍。
看到阿里的云舒在知乎说,他们最近正在研究如何取消验证码,我觉得这是一件很有意义的事情。
过犹不及,但凡事皆需有度。
哥玩 Moto 360 去了,有空回聊。
1
wdd2007 2015-09-23 14:43:51 +08:00
感觉是 100offer 自己发的帖子。。
|
2
xfspace 2015-09-23 14:45:15 +08:00 via Android
昨天有人发了个脚本,然并卵被补上了。
个人观点:写得一手好软广~ |
3
shuax 2015-09-23 14:48:29 +08:00
花式打广告
|
6
FFLY 2015-09-23 15:15:08 +08:00
怎么看都像是营销软文
|
7
zts1993 2015-09-23 15:21:04 +08:00
老婆所在公司( 100offer )。。。看到这句总觉得不对。
|
8
mcone 2015-09-23 15:27:35 +08:00
楼主先把公司名字去掉再说事儿吧 分明就是一次不成熟的营销
|
9
x4 2015-09-23 15:32:45 +08:00 via Android
拿着 vc 的钱大把的挥霍。唉。。。。
|
11
vanvesee OP 研究了一下逻辑。。
var arr = $("label").text().match(/\d+/g); var sum = parseInt(arr[0]) + parseInt(arr[1]); $("#humanizer_answer").val(sum); $("form").submit(); 准备加定时,发现服务器 500 错误了。。。 |
12
a342191555 2015-09-23 16:55:20 +08:00
$("div").each(function(index,element){if(element&&element.attributes&&element.attributes[1]&&element.attributes[1].value&&element.attributes[1].value==295){element.nextElementSibling.children[0].click();text=document.getElementsByClassName("vote-frame")[1].children[2].children[1].innerHTML;a=text.substr(0,text.indexOf("加"));b=text.substr(text.indexOf("加")+1,text.length-text.indexOf("等于")-2);document.getElementById("humanizer_answer").value=parseInt(a)+parseInt(b);document.getElementsByClassName("vote-frame")[1].children[2].children[4].click()}});
难看死了…为啥 500 了… |
13
surfire91 2015-09-23 17:06:20 +08:00
验证码只有 XXX 加 XXX 等于多少?
|
14
lerry 2015-09-23 17:25:08 +08:00
不用那么麻烦好吗?浏览器的话,清下 cookie 就可以继续投票了,脚本就更随意了。
|
16
vanvesee OP @a342191555 你的那段代码哪来的... 我这边看是 jquery 写的。
500 错误应该是针对 IP 访问做了控制,我换 IP 后正常。 |
17
chairuosen 2015-09-23 18:05:27 +08:00
正文头两个字就在花式虐狗
|
18
a342191555 2015-09-23 18:16:06 +08:00
@vanvesee 自己写的。。很烂。。模拟点击的动作…
逻辑:遍历所有的 div ,如果一个 div 的 attributes[1]的 value 是 295 (追气球的熊孩子那个,我最喜欢:),点击下面的投票按扭,然后分析问题,把问题中的两个数提取出来相加,放到 humanizer_answer 里面去,最后模拟提交动作。。。 赞你的高效脚本:) 碎碎念,略:没学过 jQuery ,本科毕设时做过前端,对 JS 知道一点皮毛… |
20
xiaocui 2015-09-23 19:03:18 +08:00
说了多少遍了 维基百科 不 ! 缺 ! 钱 !
|
21
terence4444 2015-09-23 19:15:31 +08:00 via iPhone
最后捐不捐还不知道呢,又没有证据。
|
22
leoss 2015-09-23 19:28:08 +08:00
一个靠捐款维持正常运作的网站,没有不缺钱这个说法。
|
23
vitovan 2015-09-23 19:32:11 +08:00 via Android
|
24
500miles 2015-09-23 20:18:05 +08:00
10 万块引来一群人(最直接的目标客户)关注, 最关键是还能这群人不亦乐乎, 参与其中,,,,,
这群人不断有人 show 脚本, 你们不断的家访, 你猛攻我受受 岂不爽哉? 这广告创意谁想出来的? 太尼玛机智了... |
25
msg7086 2015-09-24 01:39:34 +08:00
顺便提一句。
利用漏洞让企业给维基多捐钱的行为应该是违法的。不知道算不算的上盗窃,不过性质是一样的。 |
26
SergioChan 2015-09-24 09:29:38 +08:00
@msg7086 并且写脚本刷票还叫开源项目的评选么= =这不是脚本评选么
|
27
xiaobetty 2015-09-24 11:13:15 +08:00
@terence4444 我们会将捐款截图、维基百科收到款项后的回复邮件公示出来
|