你做过的最糟糕的事情是什么? 🙈

我刚刚读了一个围绕该问题而闻名的短篇小说,这启发了我写这个故事。 在开始之前,我不会坦白我所从事的任何违法行为(不是我所拥有的)。 取而代之的是,这将是一个关于我何时操纵2018年BET大奖的投票的轻松故事。

六月19,2018

当我看到几条推文要求人们投票给Kwesi Arthur以便他可以赢得2018年BET“最佳新国际法”奖时,我感到无聊并在推特时间轴上滚动。 (我认为)仅剩一天要关闭投票,而Kwesi Arthur距离Nailah(当时排名第一)还很遥远,所以推文的大批推销是有道理的。

设立该奖项的目的是,可以通过在特定照片上张贴#IPICKKWESIA18标签或通过BET官方网站通过Instagram进行投票。 然后将两个来源的结果相加,并且(应该)计入有关谁将获得该奖项的最终决定中。

知道了这些事实之后,我开始考虑如何才能帮助亚瑟·库维斯获胜。 我无法编写Instagram机器人来自动发布标签,主要是因为我不知道该怎么做,而且可能要花很多时间,所以我决定去了解BET网站如何记录正在投票的投票。

为此,我导航至BET投票网页。 在DevTools中打开“网络”选项卡,并投票给Kwesi Arthur。 在查看发送的XHR请求时,我注意到POST请求已发送到` https: //api.massrelevance.com/v1/polls.json?poll=4S4&option = S5T`。 搜寻了MassRelevance几分钟后,我得出以下结论:

  1. BET使用第三方API记录投票。 令人惊讶的是,该API不需要授权,因此允许任何人(感谢)篡改选票,只要他们足够聪明就可以让BET变得更明智。 实际上,我怀疑Nailah的团队对此有所了解,并实施了一种自动为她投票的解决方案。
  2. 投票查询参数(4S4)是“最佳新国际法”奖项的投票。
  3. 选项查询参数(S5T)是Kwesi Arthur的标识符,并将其包含在POST请求中表示对他投了赞成票。

掌握了这些信息后,我开始思考如何最好地实现可自动为Kwesi Arthur投票的机器人。 我知道这一定是一个网站,因为Kwesi Arthur的选票远远落后于我,我需要其他运行该机器人的人的帮助才能赶上。

Kwesi Voter ”的第一个迭代是一个简单的Vue应用程序,其中包含两个部分。 第一部分显示了该机器人当前获得的投票数,第二部分包含一个按钮,通过该按钮您可以查看Kwesi Arthur与当时处于第一位置的Nailah相比具有多少票。 我编写了所需的代码,将其推送到Github上的私人仓库中,进行了Netlify部署,并与与Kwesi Arthur或其团队中的人非常接近的朋友共享了该网站。 他们知道了,Kwesi的选票开始上升。

经过一会儿的投票后,我得出结论,考虑到最初的差距以及Nailah也在运行她的自动化解决方案这一事实,Kwesi的投票没有足够快地攀升。 这导致了Kwesi Voter的第二次迭代,我在其中添加了一个选项以生成新的浏览器选项卡,这些选项卡将自动开始运行该机器人。 在短短几个小时内,Kwesi Arthur的票数从不到50万增加到200万以上。

在获得2M票后,我使该机器人离线。 几天后,该奖项的获奖者宣布了,该奖项归Sjava所有。 直到日期,我都不知道他为什么赢了。 我当前的理论是,BET发现Nailah和Kwesi Arthur的合并投票与他们网站上的匹配不符,因此投票可能是假的。 当时的三号Sjava成为赢家。