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
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
440
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.7k
Other Decks in Programming
See All in Programming
Press start. Python's next generation.
willingc
PRO
3
310
ソフトウェアラスタライザ
fadis
1
790
まずはプロンプトガイドを読もう、話はそれからだ
kiakiraki
1
260
typoなんかねぇよ
raspython3
0
660
Claude Codeを組織的に動かして月400PRを実現した話
happy_ryo
0
260
信頼性の目標を誰も求めてない
shubox
0
490
LLMは4年分のCompose移行を再現できるのか?実プロダクト279件のXMLで探る自動化の境界線
makun
0
420
Building an Out-of-Order CPU
latte72
0
680
{ Android | Kotlin } Gradle Plugin in 2026
ryunen344
1
280
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
0
140
ソフトウェアエンジニアにとっての生成AI - 特性を知って使い倒す / generative ai for software enginner
kishida
7
2.3k
20260828_品質と開発生産性を両立させる、AI時代のE2Eテストの考え方
magicpod
0
160
Featured
See All Featured
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
890
Bash Introduction
62gerente
615
220k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
65k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
GitHub's CSS Performance
jonrohan
1033
470k
The Cult of Friendly URLs
andyhume
79
7k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
Google's AI Overviews - The New Search
badams
0
1.6k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
490
The Spectacular Lies of Maps
axbom
PRO
1
980
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൛͕ͩίϯόʔδϣϯԼ͕Βͳ͍