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
PyO3 で既存 Python 評価器を Rust core 化する ー wasm-bindgen でブラウザにも配るための設計
kdash
1
420
『寄り添うラジオ』をAIで作る 体験価値から逆算した、会話しないUXと品質設計
theoriatec2024
2
110
GraphRAGのKnowledge Graphを 直接!見る/View-GraphRAG's-KnowledgeGraph-directly!
tyumugi1113
0
230
ソフトウェアラスタライザ
fadis
1
790
新卒PdEのリアル
ryu1013
1
410
AIエージェント時代のコードレビューを設計する
nogu66
6
2.5k
FastAPI の並行処理モデルを完全に理解する
hoto17296
9
3.8k
30年振りにコンパイラの定数整数除算を改善した
herumi
9
4.4k
XHTMLが残したもの
yosuke_furukawa
PRO
1
410
Swift愛好会と私(ウホーイ) / Swift Fan Club and Uhooi
uhooi
0
140
AWS DevOps Agentで インシデント対応をAIに任せたい
honmarkhunt
6
2.2k
AI時代に学ぶ 好きなルール 嫌いなルール Linter編
shorty5121
0
860
Featured
See All Featured
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
670
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
480
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.8k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
340
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
320
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
Become a Pro
speakerdeck
PRO
31
6.2k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
Optimizing for Happiness
mojombo
378
71k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
690
WENDY [Excerpt]
tessaabrams
12
39k
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൛͕ͩίϯόʔδϣϯԼ͕Βͳ͍