Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
BOT_vs_reCAPTCHA.pdf
Search
Hazumi Ichijo
July 05, 2018
Programming
710
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
BOT_vs_reCAPTCHA.pdf
https://omotesandorb.connpass.com/event/91465/
Hazumi Ichijo
July 05, 2018
More Decks by Hazumi Ichijo
See All by Hazumi Ichijo
RailsとRidgepoleの マイグレを120倍早くする
hazumirr
0
420
CIを整備してメンテナンスを生成AIに任せる
hazumirr
0
1.5k
病院の情報フローを理解して、 予約〜会計の見え方が変わった話
hazumirr
1
1.9k
Rubyのコード削除したい時 僕がやること
hazumirr
0
290
テーブル駆動テストと状態
hazumirr
5
2.2k
オンラインテストしようと思った その日に開始できる環境を目指して
hazumirr
0
1.1k
推薦によるプロダクト改善とマイクロサービスが噛み合った話
hazumirr
2
4.8k
ChatGPTで僕が知っていることまとめ
hazumirr
3
3.1k
プロダクトチームとどう 協業し分析環境を改善するか
hazumirr
2
1.6k
Other Decks in Programming
See All in Programming
Detecting Compromised CI with eBPF and Cilium Tetragon
lizrice
0
160
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
550
作るコストが小さくなった時代 幸せに働くために改めて考えたいこと 〜エンジニアとして価値を出し続けるために注視している二分野〜
yuppeeng
0
190
Laravel Boostに学ぶ、AIにPHPを書かせる技術 〜OSSの実装から蒸留するエージェント制御の王道〜
kentaroutakeda
3
670
FDEが実現するAI駆動経営の現在地
gonta
2
270
php-fpmのプロセスが枯渇した日-調査・対処・そして本当にやるべきだったこと-
shibuchaaaan
0
240
AWS DevOps AgentのAzure接続機能を検証して見えた活用法/Use Cases Verified for the AWS DevOps Agent's Azure Connectivity Feature
masakiokuda
1
220
【SRE NEXT 2026 Lunch Session】一人目専任SREの立ち上げを加速する ― AIと進めたオンボーディングで2分を0.04秒にした話
pkshadeck
PRO
0
3.5k
継続モナドとリアクティブプログラミング
yukikurage
3
690
Apache Hive: そしてCloud Native Lakehouseへ
okumin
1
210
人間の目はかわらない、だからJPEGは30年もつ
yuzneri
12
18k
What's New in Android 2026
veronikapj
0
250
Featured
See All Featured
The agentic SEO stack - context over prompts
schlessera
0
860
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
56k
The SEO Collaboration Effect
kristinabergwall1
1
520
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
470
Scaling GitHub
holman
464
140k
Technical Leadership for Architectural Decision Making
baasie
3
470
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.2k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
370
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Amusing Abliteration
ianozsvald
1
240
Transcript
©2018 Wantedly, Inc. BOT vs reCAPTCHA 05.July.2018 - Ұᑍ and
Human vs reCAPTCHA
©2018 Wantedly, Inc. ࣗݾհ Ұᑍ!IB[VNJSS !SFSPTU 8FC"QQMJDBUJPO&OHJOFFS 3BJMT 3FBDU ʜ
۴࿏ߴઐஜେֶ8BOUFEMZ
©2018 Wantedly, Inc. BOTͷରࡦͯ͠·͔͢ʁ
©2018 Wantedly, Inc. BOTʹΑΔ߈ܸ త: ECαΠτͳͲͷSEOత ҙ: emailೝূ௨ΔBOT͕͍Δ
©2018 Wantedly, Inc. BOTʹΑΔ߈ܸ త: ECαΠτͳͲͷSEOత ҙ: emailೝূ௨ΔBOT͕͍Δ https://en.wikipedia.org/wiki/CAPTCHA
©2018 Wantedly, Inc.
©2018 Wantedly, Inc. SF$"15$)"
©2018 Wantedly, Inc.
©2018 Wantedly, Inc. ϑϩϯτΤϯυ https://developers.google.com/recaptcha/docs/invisible#auto_render <html> <head> <title>reCAPTCHA demo: Simple
page</title> <script src="https://www.google.com/recaptcha/api.js" async defer></script> <script> function onSubmit(token) { document.getElementById("demo-form").submit(); } </script> </head> <body> <form id='demo-form' action="?" method="POST"> <button class="g-recaptcha" data-sitekey="your_site_key" data-callback='onSubmit'>Submit</button> <br/> </form> </body> </html>
©2018 Wantedly, Inc. ϑϩϯτΤϯυ https://developers.google.com/recaptcha/docs/invisible#auto_render <html> <head> <title>reCAPTCHA demo: Simple
page</title> <script src="https://www.google.com/recaptcha/api.js" async defer></script> <script> function onSubmit(token) { document.getElementById("demo-form").submit(); } </script> </head> <body> <form id='demo-form' action="?" method="POST"> <button class="g-recaptcha" data-sitekey="your_site_key" data-callback='onSubmit'>Submit</button> <br/> </form> </body> </html>
©2018 Wantedly, Inc. JSͰόϦσʔγϣϯ͍ͨ͠ͱ͖ʁ
©2018 Wantedly, Inc. ϑϩϯτΤϯυ ࢀߟ: https://developers.google.com/recaptcha/docs/invisible#programmatic_execute <html> <head> <title>reCAPTCHA demo:
Simple page</title> <script src="https://www.google.com/recaptcha/api.js" async defer></script> <script> function onSubmit(token) { document.getElementById("demo-form").submit(); } function onClick() { // όϦσʔγϣϯΛߦ͏ grecaptcha.execute(); } </script> </head> <body> <form id='demo-form' action="?" method="POST"> <div class="g-recaptcha" data-sitekey="your_site_key" data-callback="onSubmit" data-size="invisible"> </div> <button onClick="onClick" /> </form> </body> </html>
©2018 Wantedly, Inc. ϑϩϯτΤϯυ ࢀߟ: https://developers.google.com/recaptcha/docs/invisible#programmatic_execute <html> <head> <title>reCAPTCHA demo:
Simple page</title> <script src="https://www.google.com/recaptcha/api.js" async defer></script> <script> function onSubmit(token) { document.getElementById("demo-form").submit(); } function onClick() { // όϦσʔγϣϯΛߦ͏ grecaptcha.execute(); } </script> </head> <body> <form id='demo-form' action="?" method="POST"> <div class="g-recaptcha" data-sitekey="your_site_key" data-callback="onSubmit" data-size="invisible"> </div> <button onClick="onClick" /> </form> </body> </html>
©2018 Wantedly, Inc. αʔόαΠυ ࢀߟ: https://developers.google.com/recaptcha/docs/verify conn = Faraday.new(:url =>
'https://www.google.com/') res = conn.post '/recaptcha/api/siteverify', { :secret => ‘RECAPTCHA_SECRET_KEY’, :response => ‘RECAPTCHA_TOKEN’ } is_bot = JSON.parse(res.body)["success"]
©2018 Wantedly, Inc. αʔόαΠυ https://github.com/ambethia/recaptcha/
©2018 Wantedly, Inc. αΫοͱಋೖͰ͖Δʂʁ
©2018 Wantedly, Inc. αΫοͱಋೖͰ͖Δʂʁ => ಋೖͨ͠
©2018 Wantedly, Inc. https://support.google.com/recaptcha/?hl=en#6081880
©2018 Wantedly, Inc. ਓ͔ؒΕͯ͠·͏
©2018 Wantedly, Inc. wਓͰ#PUͱٙΘΕΔ͕࣌͋Δ w Ϣʔβʔʢਓʣ͕͢Δ w ͔Εͨͷ͕CPU͔ਓ͔ؒΘ͔Βͳ͍ w#PUͷΛࣄલʹௐࠪ͢Δ͜ͱ͕ࠔ ͦͷޙɾɾɾ
©2018 Wantedly, Inc. wਓͰ#PUͱٙΘΕΔ͕࣌͋Δ w Ϣʔβʔʢਓʣ͕͢Δ w ͔Εͨͷ͕CPU͔ਓ͔ؒΘ͔Βͳ͍ w#PUͷΛࣄલʹௐࠪ͢Δ͜ͱ͕ࠔ ͦͷޙɾɾɾ
SF$"15$)"WͰશͯղܾʂʁ
©2018 Wantedly, Inc. SF$"15$)"W https://github.com/rerost/recaptcha_v3_demo
©2018 Wantedly, Inc. SF$"15$)"W %&.0
©2018 Wantedly, Inc. SF$"15$)"W // ਓؒ {"success"=>true, "challenge_ts"=>"2018-07-05T06:35:35Z", "hostname"=>"localhost", "score"=>0.9,
“action"=>"demo"} // BOT {"success"=>true, "challenge_ts"=>"2018-07-05T06:36:36Z", "hostname"=>"localhost", "score"=>0.1, "action"=>"demo"}
©2018 Wantedly, Inc. SF$"15$)"W // ਓؒ {"success"=>true, "challenge_ts"=>"2018-07-05T06:35:35Z", "hostname"=>"localhost", "score"=>0.9,
“action"=>"demo"} // BOT {"success"=>true, "challenge_ts"=>"2018-07-05T06:36:36Z", "hostname"=>"localhost", "score"=>0.1, "action"=>"demo"}
©2018 Wantedly, Inc. ·ͱΊ wSF$"15$)"ͷํ͕Ϣʔβʔͷख͕ؒݮΔ wW#PU͕͚Δ͕ίϯόʔδϣϯ͕Լ͕Γ͔Ͷͳ͍ w ਓखͰ͕#05͔ਓ͔ؒͲ͏͔֬ೝ͍͢͠෦ʹಋೖͯ͠νΣοΫͨ͠ w ݪҼը૾λΠϧ͕ग़Δ͜ͱʹΑΔϒϩοΫ
wW#FUB൛͕ͩίϯόʔδϣϯԼ͕Βͳ͍