hirapi's blog

駆け出しwebエンジニアのなんでもないメモ書き

builderscon tokyo 2018 聴講メモ #7「Using Chrome Developer Tools to hack your way into concerts」by amyngynさん

speakerdeck.com

※ 以下は私個人の解釈を多大に含んだメモ書きです。正確な講演内容はスライドか、もしくはYouTubeで公開される(?)公式動画をご覧ください。

Using Chrome Developer Tools to hack your way into concerts

@amyngyn

テーマ

テイラー・スウィフトのPVを何度も再生することで、チケットの当選確率を上げる

テイクホームメッセージ

  • Tools
    • コンソール上でコード実行
    • Network
    • XHRを再現してみる
    • curl
  • メンタル
    • 忍耐力
    • 好奇心

内容めも

再生数の偽装には成功したものの、結局チケットは買わなかった
(炎上しそうなので最初に書いとく↑↑)

  • 再生速度を上げて何度も再生する
  • ブラウザからサーバーへ「動画を見た」と伝えているはず

    • 左上の窓からドメインをしぼって、Networkタブで通信内容を見る。
      Youtubeからstart, countが送られる。countのレスポンス内容にsuccess:trueがある
    • 右クリックからXHRリクエストを再度送ると、レスポンスが success:false になった(駄目らしい)
    • Initiateタブからスタックトレース、リクエストを送るときの処理を確認する
      id という変数に何か文字列が入っている、値は毎回変わる。ここが大事?
    • curlで同じcountリクエストを投げてみる → 失敗
    • start → count の流れが必要?
    • start 投げてIDを獲得してからcount投げるといけるらしい、自動化できた
      テイラー・スウィフトのファンとしてNo.1の立場を確立した!!w
  • 防ぐ

    • CAPTCHA
      テイラー・スウィフトの場合、視聴の度にボタン押させるのは現実的でなかった
    • DOMをランダム化する
    • 変数名を変える
    • リクエストのvalidation
      1分の動画について1分間に1回より多く視聴されることはありえない
    • shadow banning:リクエストの成否をあえて返さない(常に success:true

質疑

  • 余罪は 基本はちゃんとやってますw でも楽しいし、色んなツールをさわってみるのは良いこと

テイラー・スウィフト側から熱烈なファン認定されて、エンジニアとしてインターンのオファー来た(けど仕事あったから断った)。
うまくいったときは「計 画 通 り」(あの顔 アニメver.)← DEATH NOTE好き

感想

ローカルに立てた疑似動画再生サイトで実演しながらの講演、再生数カウントが増えたときにはみんなで「おおー」w
誰もが一度は持ったことのある(と私は思う)ちょっと悪いことをこっそりやってきゃっきゃするあの感じ、すごくチャーミングで楽しかった!w
エンジニアリングが仕事になって義務になって、忘れてた最初のどきどきを思い出させてくれる良いトークだった……!