2024-06-09
å¤ãæ²ç¤ºæ¿ã« reCAPTCHA V3 ãå®è£ ããã
å½ãµã¤ãã®å¾©æ§ãå®äºãããã®ã®ãé²è¦§è ã®æ¹ã ãæ°è»½ã«è¶³è·¡æ®ããåºæ¥ãæ²ç¤ºæ¿ããªãã®ã¯ã¡ãã£ã¨å¯ãããªã¨æãã以å使ç¨ãã¦ããæ²ç¤ºæ¿ãpicobbsããè¨ç½®ãããã¨æãã¾ããããéåæã¨ã¯éãã¹ãã ãããã®æ§ãªæ©æ¢°ã«ããèªåéä¿¡åã®è¿·æè¡çºã«æ©ã¾ããæ²ç¤ºæ¿ãééããæ¹ãå¤ãæ§ã§ãã¹ãã 対çããªããã¦ãªãå¤ãæ²ç¤ºæ¿ã·ã¹ãã ï¼ææ©éå»ã®éºç©ï¼ï¼ã¯æ ¼å¥½ã®é¤é£ãªã®ã§ãæããããè¦ãããç»åèªè¨¼ã®æ§ãªæ©è½ã§ãå®è£ ãã¦ã¿ãããã¨èãã¾ããããã ãç»åèªè¨¼ãæ°åãã¢ã«ãã¡ãããã®æ§ãªåç´ãªä»çµã¿ã ã¨ç°¡åã«çªç ´ãããæããããã対çãæ½ãã®ã§ããã°ãã£ã¨ç¢ºãã¨ããè¯ãæ¹æ³ã§ãªããã°ãªãã¾ããã
ã¹ãã ãããã¯æµ·å¤ãããå¤ãããããæ¥æ¬èªãå ¥åããä»çµã¿ã ã¨ããããå ¥ååºæ¥ãã«çªç ´ããé£ãæ§ã§ãæ¥æ¬äººãªã誰ã§ãç´ãã«åããæ§ãªè³ªåããã©ã¼ã ã®æå¾ã«ã§ãæ·»ãã¦ãããåçãå ¥åãããåç´ãªæ¹æ³ã§ãè¯ãããã§ãããGoogleãç¡åï¼æåæãï¼ã§æä¾ãã¦ããreCAPTCHAãããã®ã§ãå©ç¨ããªãæã¯ãªãã¨èãå®è£ ãã¦ã¿ãäºã«ãã¾ããã
ä½è«ã«ãªãã¾ãããç»åèªè¨¼ã¯ãæªãã ãæ¦ããããªã©ãã¦æ©æ¢°ã«èªã¿åãé£ãããæåãç»åã§è¡¨ç¤ºãããããå©ç¨è ï¼äººéï¼ãç®è¦ã§ãã®æåãå ¥åããæ¹æ³ã§ãããã¢ã¯ã»ã·ããªãã£ã¼ã®è¦³ç¹ã¨ãã¦åé¡ãªãã®ã§ããããï¼ç§ã¯è¦è¦éç¢è ã§ã¯ããã¾ããããç»åèªè¨¼ã¯åº¦ã å ¥åã失æããçµé¨ãããã¾ãï¼èç¼ãï½ï¼ãåãæ§ã«ãreCAPTHA v2 ããã®ç¹ã§æ¬ ç¹ãæ±ãã¦ããã¨æãã¾ããã¦ã§ãå¶ä½è ã§ãã®è¾ºãèªã£ã¦ããæ å ±ã¯çç¡ã§ãããï¼ï¼è¦è¦é害è ã¨CAPTCHAï¼v3ã ã¨å®å ¨èªååã®ã·ã¹ãã ãªã®ã§ãå©ç¨è ã«å ¥åãªã©ã®æéãç¡ã便å©ã§è¯ãã¨æãã¾ããæ±ºãã¦ãGoogleã®åãè ã§ã¯ããã¾ãããï¼ç¬ï¼
reCAPTCHAã«ã¤ãã¦ãããæ¤ç´¢ããã¦ã¿ãã¨ãè¨è¼ããã便ãè¤éã§åå¿è ã«ã¯å®è£ ãé£ããæããæ å ±ã®æ£è¦ãå¤ãã¿ããã¾ããä»åã¯åºæ¬çãªäºã«æãã¦è¨è¼ãã¾ããããã°ã©ã ã«è©³ãããªãæ¹ã§ãå®è£ ã¯ããé£ããã¯ãªãã¨æãã¾ãã
- reCAPTCHA V3 ã¨ã¯
reCAPTCHA v3 ã使ç¨ããã¨ãã¦ã¼ã¶ã¼ã®æä½ãå¿ è¦ã¨ããã«ãã¦ã§ããµã¤ãä¸ã®ä¸æ£ãªãã©ãã£ãã¯ãæ¤åºã§ãã¾ããreCAPTCHA v3 ã§ã¯ãCAPTCHA ãã£ã¬ã³ã¸ã表示ãã代ããã«ã¹ã³ã¢ãè¿ããããã¦ã§ããµã¤ãã«æé©ãªã¢ã¯ã·ã§ã³ã鏿ã§ãã¾ãã
[å¼ç¨ï¼ reCAPTCHA v3 ã®æ¦è¦ ãã]
reCAPTCHA V3 ã®å®è£
reCAPTCHAã®å®è£ æ¹æ³ã¯å®ã«ç°¡åã§ãã
- Googleã¢ã«ã¦ã³ãããæã¡ã§ãªãã°ãGoogle ã¢ã«ã¦ã³ãã®ä½æãå¿ è¦ã§ãã
- ãæã¡ã®ã¢ã«ã¦ã³ãã§ãreCAPTCHAã使ç¨ï¼å®è£ ï¼ããçºã®ç»é²ããã¾ãã
- reCAPTCHAãå®è£ ãããã¼ã¸ã«å®è£ ããçºã«å¿ è¦ã¨ãªãã½ã¼ã¹ã³ã¼ãï¼å¾è¿°ï¼ã追å ãã¾ãã
- éä¿¡ãããå 容ã®å¦çï¼å ¥åãã©ã¼ã ã®POSTå¦çï¼ã®åã«ãreCAPTCHAã«ããéå®ã§ã¹ãã ãããã§ããã°å¼¾ãå¦çãæ½ãã¾ãã
ãã£ãããã ãã§ã¹ãã ãé²å¾¡ãããã¨ãå¯è½ã§ããå¿è«ãæªæãã人éã«ããèããè¡çºã¾ã§ã¯é²ãäºã¯åºæ¥ã¾ãããï¼ããã¯å¿ è¦ã«å¿ãã¦IPã¢ãã¬ã¹ã表示ãããªã©ã®æ¹æ³ã§å¯¾å¦å¯è½ãã¨ï¼ãæ©æ¢°ã人éããå¤å¥ããä»çµã¿ã¨ãã¦ã¯ç¾æç¹ã§æãå®å¿ã§ããç°¡åãªæ¹æ³ã ã¨æãã¾ãã
注é
reCAPTCHAã®ç»é²æã«ã¯ã¡ãã£ã¨æ³¨æãå¿ è¦ã§ãããã©ã«ãã§ã¯ Enterprise API ï¼æåçï¼å®éã«ã¯è¦å®åæ°ã¾ã§ã¯ç¡åå©ç¨å¯è½ï¼ãªã®ã§ãç¡åã§å©ç¨ãããå ´åã«ã¯ãç»é²æã« Switch to create a legacy key ã«åãæ¿ãã¦ç»é²ãè¡ãå¿ è¦ãããã¾ãã
ç»é²ããããreCAPTCHA v3 ã®ã¬ã¤ããåèã«ããªãããå®è£ ããããã¼ã¸ã«ä¸è¨ã³ã¼ãã追å ãã¾ãã
- JavaScript API
<script src="https://www.google.com/recaptcha/api.js"></script>- ãã¼ã¯ã³ãå¦çããã³ã¼ã«ããã¯é¢æ°
<script> function onSubmit(token) { document.getElementById("demo-form").submit(); } </script>- 便ã®
demo-formå¤ã¯ãå®è£ ãããã©ã¼ã ï¼formè¦ç´ ã®id屿§å¤ï¼ã«å¯¾å¿ãã¾ããé©åãªå¤ã«å¤æ´ãã¦ä¸ãããä¾ãã°ãformè¦ç´ ã®id屿§å¤ãpost_formãªãã°ããã®å¤ï¼post_formï¼ã«å¤æ´ããªããã°ãªãã¾ããã - HTMLã®submitï¼éä¿¡ï¼ãã¿ã³
<button class="g-recaptcha" data-sitekey="reCAPTCHA_site_key" data-callback='onSubmit' data-action='submit'>Submit</button>
2ã¤ã®scriptè¦ç´ ã®æ¿å
¥ç®æã¯headè¦ç´ å
ã§ãbodyè¦ç´ å
ã§ã大ä¸å¤«ã§ããä¸è¨3ã¤ã追å ãã¦å®è£
ããããã¼ã¸ã表示ããã¨ãå³ä¸ã«reCAPTCHAããã¸ã表示ããã¾ãã表示ãããã°å®è£
ã¯æåã§ããç¶ããªãããããã ãã§ã¯äººéãæ©æ¢°ï¼botï¼ãã®å¤å®ãè¡ãã ãã§å¤å®çµæãå¾ãã ãã§ã¯ä½ã®å½¹ã«ãç«ã¡ã¾ãããã§ããããreCAPTCHAã«ããå¤å®çµæã使ããã³ã¼ãã«æãå ããå¿
è¦ãããã¾ããã¤ã¾ããå©ç¨è
ãéä¿¡ãã¿ã³ãæ¼ãã¦éä¿¡ãããå
容ãå¦çããçºã®ã³ã¼ãè¨è¿°ç®æã«reCAPTCHAã«ããå¤å®çµæã«ããã¹ãã ãå¼¾ãï¼ãããã¯ããï¼å¦çãæ½ãã°è¯ã訳ã§ãã
PHPã§ã®å¦ç
以ä¸ã¯ãéä¿¡ãã¿ã³ãæ¼ãããæã«å¦çããã颿°å ã®åé ã«ä»ãå ããå 容ï¼é¢é£ããè¨è¿°ã®ã¿æç²ï¼ã§ããä»åç§ãreCAPTCHAãå®è£ ããæ²ç¤ºæ¿ãpicobbsãããåç¥ã®æ¹ã§ããã°ããpicobbsã¯Perlè¨èªã§æ¸ããã¦ããçã ãï¼ï¼ãã¨è¨èªã®éããçåã«æãããäºã§ããããå®ã¯ãç§èªä¿¡ã§picobbsãPerlããPHPã«ç§»æ¤ãã¦æãå ãã¦ãã¾ããå½åã¯ãªãªã¸ãã«ã®Perlã³ã¼ãã«æãå ãã¦å®è£ ã試ãã¾ããããå®è¡ãã¹ãä¸ã«ãµã¼ãã®ã¢ã¸ã¥ã¼ã«ä¸è¶³ã«æ°ä»ãããã®çºã ãã«ãµã¼ã管çè ã®ããã·ã¼ããã«ã¢ã¸ã¥ã¼ã«å¯¾å¿ããªã¯ã¨ã¹ãããã®ã¯å¿è¦ããæããå人çã«PHPã®æ¹ã使ç¨é »åº¦ãé«ã使ãåæãè¯ãã®ã§ããã®éã ãã¨ãªãããªãã¦ãPHPã«ç§»æ¤ãã¦ã¿ã¾ããï¼è¦ç¬ï¼ã2æ¥ã§å®æãã¾ããããã°ãã¡ã¤ã«ã¯å®å ¨äºæã§åä½ãã¾ãããªãªã¸ãã«ã«ãã£ããã°ï¼å¦ã仿§ï¼ãªã©ãåºã«ä¿®æ£ãã¾ãããè¦ãç®ã¯å®å ¨ã«picobbsã§ãã(*´Ïï½°ï½)ï½´ï¾ï¾w
â»ãpicobbsãã¯ãä»ãã20年以ä¸åã«Makotoæ°ã«ããç¡åé å¸ããã¦ããç°¡ææ²ç¤ºæ¿ã·ã¹ãã ã§ãW3C仿§ã«æºæ ãã綺éºãªHTMLã½ã¼ã¹ã³ã¼ããåãæ²ç¤ºæ¿ã¨ãã¦ã¦ã§ãå¶ä½è ã®éã§ç¥ããã«ã¹ã¿ãã¤ãºã容æã§ããããé å¸ãµã¤ãã¯æ®å¿µãªäºã«ç¾ãã®æã«æ¶æ» ãã¦ãã¾ããä¸å¿ãWayback Machineã«ã¢ã¼ã«ã¤ãããã¦ãã¾ãï¼picoBBSï¼ããpicobbsã«éããå¤ãã·ã¹ãã ã¯ç¾å¨ä½¿ç¨ããã«ã¯ãã®ã¾ã¾ã§ã¯ä½¿ç¨ã«èãããã®ã§ã¯ããã¾ããã
話ããè±ç·ãã¾ããããreCAPTCHAã«ããé²å¾¡æ©è½ãçºåããçºã«ã以ä¸ã®æ§ãªæãã§éä¿¡å
容ãå¦çããè¨è¿°ã«æãå ãã¾ãã以ä¸ã®PHPã§ã®è¨è¿°ä¾ã¯ãæç¨¿ãã©ã¼ã éä¿¡æã«å¼ã³åºãããdo_post颿°ã®ä¸ã«è¨è¿°ãã¦ãã¾ãã
function do_post() {
...
$user_token = filter_input(INPUT_POST, "g-recaptcha-response");
if ($user_token === null) { // 念ã®çº
// ã¨ã©ã¼å¦ç
}
$params = [
'secret' => /* RECAPTCHA V3 ã·ã¼ã¯ã¬ãããã¼ */,
'response' => $user_token
];
$options = [
'http' => [
'method' => 'POST',
'header' => 'Content-Type: application/x-www-form-urlencoded',
'content' => http_build_query($params)
]
];
// APIãªã¯ã¨ã¹ã
$filename = 'https://www.google.com/recaptcha/api/siteverify';
$context = stream_context_create($options);
$response = json_decode(file_get_contents($filename, false, $context));
// botèªå®ãããå ´åã®å¦ç
// successãtrueã§ããæå®scoreå¤ï¼ä»¥ä¸ã§ã¯0.5ï¼ãä¸åãå ´åã«ã¹ãã ã¨ãã¦æ±ãã®ã§æ³¨æãå¿
è¦ã
if ($response->success === false || $response->score <blockcode 0.5) {
$error = $response->{'error-codes'};
// botãªãã°ã¨ã©ã¼å¦çãã¦çµäº
}
// ä¸è¨ifæã«ä¸è´ããªããã°ãå¯ã¨ãã¦é常éãã®å¦çã以ä¸ã«ç¶ããâ¦
...
}
ä¸è¨ã® /* RECAPTCHA V3 ã·ã¼ã¯ã¬ãããã¼ */ ã®ç®æã«ã¯ãreCAPTCHAã®ç»é²å®äºæã«çºè¡ãããã·ã¼ã¯ã¬ãããã¼ã®æååãå
¥ãã¾ãï¼ç»é²å¾ã¯ v3 Addmin Console ã®è¨å®ãã確èªã§ãã¾ãï¼ãã¨ã©ã¼å¦çã¯å¿
è¦ã«å¿ãã¦ãå¤å®ã®scoreå¤ï¼ã¹ã³ã¢ã®è§£éï¼ã¯ã1.0ã¯å®å
¨ã§0.0ã¯ãããã®å¯è½æ§ãé常ã«é«ãã人éã¨æ©æ¢°ã®ãããå¤ã0.5ãªã®ã§ãä¸è¨æ¹æ³ã§ã¯0.5ãåºæºã«å¤å®ãã¦ãã¾ããä½ããå©ç¨è
ã®ç°å¢ã«ãã£ã¦ã¯æ°å¤ã墿¸ããæ°å¤ãå³ããè¨å®ããã¨äººéã§ãå¼¾ãããå¯è½æ§ããã訳ãªã®ã§ã注æãã ããã
ãã£ã¨ã§ããã以ä¸ã§ããçµã¿è¾¼ãã®ãPHPã§ããã°ãç§ã®ä¾ãæ®ã©ãã®ã¾ã¾ä½¿ç¨åºæ¥ãã®ã§åå¿è ã§ãç°¡åã ã¨æãã¾ãã
reCAPTCHA ããã¸ãé表示ã«ããã
ãããã質åã«è¨è¼ããã¦ãã¾ããããã¸ãé表示ã«ãããã¨ãã§ãã¾ãããæå®ãããããã¹ãã表示ããå¿ è¦ãããã¾ãã
This site is protected by reCAPTCHA and the Google
<a href="https://policies.google.com/privacy">Privacy Policy</a> and
<a href="https://policies.google.com/terms">Terms of Service</a> apply.CSSã§è¡¨ç¤ºä½ç½®ãªã©ãã«ã¹ã¿ãã¤ãºãããå ´åã«ã¯ãã¯ã©ã¹ã»ã¬ã¯ã¿ã§å±æ§å¤.grecaptcha-badgeã使ãè¨å®ããã°è¯ãã§ãã
ä»å¾ã®äºå®
ä½è«ã§ããããreCAPTCHAãã®æ å ±ãæ¤ç´¢ãããã¨ãGoogleå ¬å¼ã®è§£èª¬ãããæ°å¤ãã®è§£èª¬ãããããã¾ããè¿å¹´ã¯ãæããããã¼ã¯ã¢ããã®æ§é åãã»ãã³ãã£ã¯ã¹ãéè¦è¦ãããæ§ã«ãªã£ãäºã¯è¯ãäºã§ãããèªåãæ±ãã¦ããæ å ±ãä¸ä½ã ããå¿ ãåè´ãã訳ã§ããªãã¨æãã¾ããSEO対çã«ã¤ãã¦èªãæ å ±è³æºãå¤ãã§ãããæ¤ç´¢ã¯ã¼ãã«ãã£ã¦ã¯åã誤æ å ±ã§ããSEO対çããããªã½ã¼ã¹ãä¸ä½ããããã¾ãããã®æãmeta keywordsã®åãè¾¼ã¿ã§ä¸ä½ããããçã£ãããæ¹ã¨ä½ãå¤ãã£ã¦ãªãã¨æãã¾ãã試ãã«ããç¦å²¡å¼ãã¨æ¤ç´¢ãã¦ã¿ã¦ä¸ãããå ¨ã¦èª¤æ å ±ã°ãããããããã¾ããä¸ä½ãããã«éããã§ããæ¬å½ã«æ£ããæ å ±ã¯ãä»ã§ã¯æ°å°ãªããªã£ãç¦å²¡å¼è©±è ã§ããç§ã®ããã°ï¼ç¦å²¡å¼ ï½ããªãã®ç¥ããªãç¦å²¡å¼ï½ï¼ãããããåå¨ãã¾ããããä¸ä½ã©ãããå ¨ãããããã¾ãããå®å ¨ã«åããã¦ãã¾ããã§ããããæè¿æµè¡ãã®AIãã£ãããåã®æ å ±ãåãã¾ããããã¯å·®å¥ã§ãã人権侵害ã§ããã訴ãã¦ããï¼ãby ããã§ã¦å¶æ¥½é¨ï¼ç¬ï¼ãããã訳ã§ãä»å¾ã®æ´æ°äºå®ã¯AIã«æ£ããç¥èãåãããçºã«ããç¦å²¡å¼ãã«ã¤ãã¦ã®ã³ã³ãã³ããå å®ããã¦ããããã¨èãã¦ã¾ãããµã¤ã復æ§ããç®çã¯ãããæå¤§ã®çç±ã ã£ãããã¦ã»ã»ã»ã