Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
BOT_vs_reCAPTCHA.pdf
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Hazumi Ichijo
July 05, 2018
Programming
720
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
450
CIを整備してメンテナンスを生成AIに任せる
hazumirr
0
1.5k
病院の情報フローを理解して、 予約〜会計の見え方が変わった話
hazumirr
1
2k
Rubyのコード削除したい時 僕がやること
hazumirr
0
290
テーブル駆動テストと状態
hazumirr
5
2.2k
オンラインテストしようと思った その日に開始できる環境を目指して
hazumirr
0
1.1k
推薦によるプロダクト改善とマイクロサービスが噛み合った話
hazumirr
2
4.8k
ChatGPTで僕が知っていることまとめ
hazumirr
3
3.1k
プロダクトチームとどう 協業し分析環境を改善するか
hazumirr
2
1.7k
Other Decks in Programming
See All in Programming
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
290
個人開発基盤をまるごとCloudflareに引っ越して爆速で総合的体験を向上させた話
tinykitten
0
190
The Good Stuff, Not the Slop: Engineering High-Quality Android Apps with Modern AI Tooling
danybony
1
250
DroidKaigi 2026 「個人開発という実験場: Android エンジニアが手にする4つの自由」
slashnephy
0
230
AIを上手に使っていこうとしたら越境せざるを得なくなった話 〜実践1年で見えた境界を越えなければならない理由と進め方〜 / Crossing borders with AI
tomoyakitaura
4
1.2k
AGENTS.md Is Not Enough:Build Skills, Don't Download Them
lx_t
0
120
Jetpack Compose メカニズム
skydoves
0
420
AWS DevOps Agentで インシデント対応をAIに任せたい
honmarkhunt
7
2.9k
MVNOの申込からeSIM開通までをiOSアプリでつなぐ- 本人確認・MNP・通信事業者基盤をまたぐ実装
satotakeshi
0
420
新人はどこまで自力でやり、どこからAIに頼るべきか/エンジニア育成に向き合う_先輩たちの悩みと知見共有会
toppan_digital_dev
1
620
FreeBSDでZabbixを動かす
kenkino
0
290
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
4
3k
Featured
See All Featured
Scaling GitHub
holman
464
140k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
540
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
520
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
450
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
290
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
800
A designer walks into a library…
pauljervisheath
211
25k
Deep Space Network (abreviated)
tonyrice
0
310
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
Building Applications with DynamoDB
mza
96
7.2k
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൛͕ͩίϯόʔδϣϯԼ͕Βͳ͍