&pgid();
- ¥¹¥Ñ¥àËÉ»ßÍѤÎPukiWiki¥é¥¤¥Ö¥é¥ê¤Î¸ø³«ÍÑ¥Ú¡¼¥¸¤Ç¤¹¡£
** Ìܼ¡ [#x9a15d0e]
#contents
** ̾Á° [#ca867f52]
reCAPTCHA ¥×¥é¥°¥¤¥ó - spam¥Ü¥Ã¥È¤Î¤¤¤¿¤º¤é½ñ¤¹þ¤ß¤ËÂбþ¤¹¤ëPukiWiki¥×¥é¥°¥¤¥ó
Version 1.0.0
Copyright (C)
2008 ARK-Web co,. ltd.
License: GPL version 2 or (at your option) any later version
** ÂоݥС¼¥¸¥ç¥ó [#m3b120b4]
- ÂоݤÎpukiwiki¤Î¥Ð¡¼¥¸¥ç¥ó¤Ï EUC-JPÈǤΠpukiwiki-1.4.7_notb ¤Ç¤¹¡£
http://pukiwiki.sourceforge.jp/?PukiWiki%2FDownload%2F1.4.7
-- EUC-JPÈǤΠpukiwiki-1.4.6 ¤Ç¤Îưºî³Îǧ¤¬¼è¤ì¤Þ¤·¤¿¡£
*** ɬ¿Ü´Ä¶ [#k412624a]
Ëܥץ饰¥¤¥ó¤¬Æ°ºî¤¹¤ë´Ä¶¤È¤·¤Æ¡¢COLOR(red){''PEARËÜÂÎ''¤È¡Ö''HTTP::Request''¡×¤ª¤è¤Ó¡Ö''Net::URL''¡×¤¬É¬Í×}¤Ç¤¹¡£
¥Û¥¹¥Æ¥£¥ó¥°¤ò¼Ú¤ê¤Æ¤¤¤ÆPEAR´Ä¶¤ò¹¹¿·¤Ç¤¤Ê¤¤¾ì¹ç¤Ï¢¤³¤Á¤é¤ÎÊýË¡¤Ç¼«Ê¬¤Î¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤Ë´Ä¶¤¬ºî¤ì¤Þ¤¹¡£
- ¶¦Í¥Û¥¹¥È¤Ç¤Î PEAR ¤Î¥í¡¼¥«¥ë¥³¥Ô¡¼¤Î¥¤¥ó¥¹¥È¡¼¥ë
http://pear.php.net/manual/ja/installation.shared.php
** ¥À¥¦¥ó¥í¡¼¥É [#eb100ef1]
- reCAPTCHA.tgz (64KB)
#ref(reCAPTCHA.tgz)
- reCAPTCHA.zip (68KB)
#ref(reCAPTCHA.zip)
#blikimore
** reCAPTCHA¤È¤Ï [#tb5dd840]
#ref(demo_img.gif)
reCAPTCHA¤ÎÀâÌÀ¤ÎÁ°¤Ë¡ØCAPTCHA(¥¥ã¥×¥Á¥ã)¡Ù¤Ï¤´Â¸ÃΤǤ·¤ç¤¦¤«?
Yahoo!¤Î¿·µ¬ÅÐÏ¿¤Ê¤É¡¢Web¥µ¡¼¥Ó¥¹¤Ç¤è¤¯»È¤ï¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤Æ¤¤¤ë¡¢²èÁüʸ»ú¤ÎÆâÍÆ¤òÆþÎϤµ¤»¤ë¥¢¥ì¤Ç¤¹¡£
CAPTCHA¤ÎÌÜŪ¤Ï¡Ø¿Í´Ö¡Ù¤È¡Ø¥³¥ó¥Ô¥å¡¼¥¿(SpamBot)¡Ù¤ò¸«Ê¬¤±¤ë¤³¤È¤Ë¤¢¤ê¤Þ¤¹¡£²èÁüʸ»ú¤Ï¥Ð¥¤¥Ê¥ê¥Ç¡¼¥¿¤Ê¤Î¤Ç
¥³¥ó¥Ô¥å¡¼¥¿¤Ë¤Ï¤¹¤°¤Ë¤Ïʬ¤«¤ê¤Þ¤»¤ó¤¬¡¢¿Í´Ö¤Ë¤ÏÌܤǸ«¤¿¤ê²»À¼¤Ç³Îǧ¤¹¤ì¤Ðû»þ´Ö¤ÇÂбþ¤Ç¤¤Þ¤¹¡£
¤½¤ì¤ò½ñÀҤΥǥ¸¥¿¥ë²½¤Ë͸ú³èÍѤ¹¤ë¤è¤¦¤ËÌܤò¸þ¤±¤¿¤Î¤¬reCAPTCHA¤Ç¤¹¡£reCAPTCHA¤Ç¤Ï²èÁüʸ»ú¤Ëñ¸ì¤¬2¤Ä½Ð¤Æ¤¤Þ¤¹¡£
¤³¤Î¤¦¤Á1¤Ä¤ÏCAPTCHA¤ÈƱ¤¸¤è¤¦¤Ëͽ¤áÅú¤¨¤Îʬ¤«¤Ã¤Æ¤¤¤ë¤â¤Î¤Ç¡¢¤â¤¦1¤Ä¤ÏOCR¤ÇÆÉ¤ß¼è¤ì¤Ê¤«¤Ã¤¿Ã±¸ì¤Ç¤¹¡£
CAPTCHA¤Î¤·¤¯¤ß¾å¡¢¥æ¡¼¥¶¤Ï¡ÖξÊýÀµ¤·¤¤Ã±¸ì¤òÆþ¤ì¤ë¤À¤í¤¦¡×¤È¤¤¤¦¤³¤È¤ÇÀ®¤êΩ¤Ã¤Æ¤¤¤Þ¤¹¡£
±Ñ¸ì¤Ç¤¹¤¬²¼µ¤ÎreCAPTCHA¸ø¼°¥µ¥¤¥È¤Ë¾ÜºÙ¤ÊÀâÌÀ¤¬¤¢¤ê¤Þ¤¹¡£
http://recaptcha.net/learnmore.html
** pukiwkiki¤ÎreCAPTCHA¥â¥¸¥å¡¼¥ë¤ÎÆÃħ [#td83654b]
- ¥Ú¡¼¥¸¤òÆÉ¤à¤À¤±¤Î±ÜÍ÷¼Ô¤Ë¤ÏreCAPTCHA¤Ë¤è¤ëǧ¾Ú¤ÎɬÍפ¬¤¢¤ê¤Þ¤»¤ó
- 1²óreCAPTCHA¤Çǧ¾Ú¤¬¼è¤ì¤ë¤È¡¢¥Ö¥é¥¦¥¶¤òÊĤ¸¤ë¤Þ¤ÇÊÔ½¸¤¬µö²Ä¤µ¤ì¤Þ¤¹
- reCAPTCHA¤Çǧ¾Ú¤¬É¬ÍפȤʤë¥×¥é¥°¥¤¥ó¤òÁªÂò¤Ç¤¤Þ¤¹
- ±ÜÍ÷¼Ô¤Î¥Ö¥é¥¦¥¶¤¬JavaScript¤òÍøÍѲÄǽ¤Ê¤è¤¦¤Ç¤¢¤ì¤Ð¡¢¥â¡¼¥À¥ë¥À¥¤¥¢¥í¥°Ãæ¤Çǧ¾Ú¤òºÑ¤Þ¤»¤é¤ì¤Þ¤¹
** reCAPTCHA¥â¥¸¥å¡¼¥ë¤Î¥Ç¥â [#d4912d13]
ƳÆþÁ°¤Ë¤Þ¤º¤É¤Î¤è¤¦¤Êµ¡Ç½¤Ê¤Î¤«¤òÃΤäƤ¤¤¿¤À¤¯¤¿¤á¤Ë¡¢¥Ç¥â´Ä¶¤òÍѰդ·¤Þ¤·¤¿¡£
http://www.ark-web.jp/sandbox/recaptcha/pukiwiki
¢¨¥Ç¥â´Ä¶¤ÏËèÆü6»þ¤Ë¸µ¤ËÌᤵ¤ì¤Þ¤¹
** ¥¤¥ó¥¹¥È¡¼¥ë [#w59b8017]
0.¥Õ¥¡¥¤¥ë¤Î¥Ð¥Ã¥¯¥¢¥Ã¥×¤ò¼è¤ê¤Þ¤¹¡£
1.pukiwiki¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ë¡¢pukiwikiÇÛ²¼¤ò¥¢¥Ã¥×¥í¡¼¥É¤·¤Þ¤¹¡£
2.pukiwiki¤Î¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë(4¥Õ¥¡¥¤¥ëʬ)¤ËÄɵ¤·¤Þ¤¹¡£
¡¡¢¨Äɵ²Õ½ê¤Ë¤ÏÁ´¤Æ¡Ö// -> (...)¡×¤È¡Ö// <- (...)¡×¤¬½ñ¤¤¤Æ¤¢¤ê¤Þ¤¹¡£
2-1.index.php¤ÎÀèÆ¬¤Ë²¼µ¤Î¥³¡¼¥É¤òÄɲä·¤Þ¤¹¡£
// Copyright (C) 2001-2006 PukiWiki Developers Team
// License: GPL v2 or (at your option) any later version
// -> 2008.02.26 s.g.kohata(reCaptcha)
// session
session_start();
// <- 2008.02.26 s.g.kohata(reCaptcha)
// Error reporting
//error_reporting(0); // Nothing
2-2.lib/init.php¤Ë²¼µ¤Î¥³¡¼¥É¤òÄɲä·¤Þ¤¹¡£
define('UA_NAME', isset($user_agent['name']) ? $user_agent['name'] : '');
define('UA_VERS', isset($user_agent['vers']) ? $user_agent['vers'] : '');
unset($user_agent); // Unset after reading UA_INI_FILE
// -> 2008.02.26 s.g.kohata(reCaptcha)
/////////////////////////////////////////////////
// recaptcha¥×¥é¥°¥¤¥ó¤Î¥Á¥§¥Ã¥¯
define('RECAPTCHA_INI_FILE', PLUGIN_DIR . 'recaptcha.ini.php');
if (! file_exists(INI_FILE) || ! is_readable(INI_FILE)) {
define('RECAPTCHA_EXIST', false);
} else {
require(RECAPTCHA_INI_FILE);
define('RECAPTCHA_EXIST', true);
}
// <- 2008.02.26 s.g.kohata(reCaptcha)
/////////////////////////////////////////////////
// ¥Ç¥£¥ì¥¯¥È¥ê¤Î¥Á¥§¥Ã¥¯
2-3.skin/pukiwiki.skin.php¤Ë²¼µ¤Î¥³¡¼¥É¤òÄɲä·¤Þ¤¹¡£2²Õ½ê¤¢¤ê¤Þ¤¹¡£
<link rel="stylesheet" type="text/css" media="print" href="skin/pukiwiki.css.php?charset=<?php echo $css_charset ?>&media=print" charset="<?php echo $css_charset ?>" />
<link rel="alternate" type="application/rss+xml" title="RSS" href="<?php echo $link['rss'] ?>" /><?php // RSS auto-discovery ?>
<?php
// -> 2008.02.26 s.g.kohata(reCaptcha)
if (defined('RECAPTCHA_ENABLE_PLUGINS'))
print recaptcha_get_script();
// <- 2008.02.26 s.g.kohata(reCaptcha)
?>
<?php if (PKWK_ALLOW_JAVASCRIPT && $trackback_javascript) { ?> <script type="text/javascript" src="skin/trackback.js"></script><?php } ?>
<?php echo $head_tag ?>
(...)
<?php } ?>
<?php echo $hr ?>
<?php
// -> 2008.02.26 s.g.kohata(reCaptcha)
if (defined('RECAPTCHA_ENABLE_PLUGINS')) {
if (!is_recaptcha_checked()) {
global $safari_version;
if ($safari_version < 500) {
echo RECAPTCHA_SAFARI_MESSAGE;
echo $hr;
}
}
}
// <- 2008.02.26 s.g.kohata(reCaptcha)
?>
<?php if (PKWK_SKIN_SHOW_TOOLBAR) { ?>
<!-- Toolbar -->
<div id="toolbar">
2-4.lib/pukiwiki.php¤Ë²¼µ¤Î¥³¡¼¥É¤òÄɲä·¤Þ¤¹¡£2²Õ½ê¤¢¤ê¤Þ¤¹¡£
/////////////////////////////////////////////////
// Include subroutines
// -> 2008.02.26 s.g.kohata(reCaptcha)
// safari¤Î¥Ð¡¼¥¸¥ç¥ó³Îǧ
// Mozilla/5.0 (Macintosh; U; Intel Mac OS X; ja-jp) AppleWebKit/418 (KHTML, like Gecko) Safari/417.9.3
if (preg_match("/Safari\/([0-9\.]+)$/", $_SERVER['HTTP_USER_AGENT'], $version))
$safari_version = (int)$version[1];
else
$safari_version = 500;
// <- 2008.02.26 s.g.kohata(reCaptcha)
if (! defined('LIB_DIR')) define('LIB_DIR', '');
require(LIB_DIR . 'func.php');
(...)
if ($plugin != '') {
// -> 2008.02.26 s.g.kohata(reCaptcha)
// recaptcha¤¬É¬Íפʥڡ¼¥¸¤«³Îǧ
if (defined('RECAPTCHA_ENABLE_PLUGINS')) {
// recaptchaÍÑ¥ê¥À¥¤¥ì¥¯¥È
if ($_GET['plugin'] == 'recaptcha') {
if ($_GET['action'] == 'status') {
header("location: ../plugin/recaptcha.ini.php?action=status");
exit;
}
else if ($_GET['action'] == 'window') {
header("location: ../plugin/recaptcha.ini.php?action=window");
exit;
}
}
if (is_recaptcha_necessary($plugin)) {
// ºÆ¥Ý¥¹¥È»þ¤Ë°ì»þŪ¤Ë̵¸ú²½
if (isset($_POST['recaptcha_check']) &&
$_POST['recaptcha_check'] == 'false')
;
else {
// ¥Á¥§¥Ã¥¯ºÑ¤ß¤Ç¤Ê¤¤¾ì¹ç¤Î¤ß
if (!is_recaptcha_checked()) {
// POST¥¢¥É¥ì¥¹
$_SESSION[RECAPTCHA_SESSION_POSTURL] = $_SERVER['REQUEST_URI'];
// Ìá¤ê¥¢¥É¥ì¥¹
if (substr($_SERVER['REQUEST_URI'], -9) == "index.php")
$_SESSION[RECAPTCHA_SESSION_RETURL] = $_SERVER['HTTP_REFERER'];
else
$_SESSION[RECAPTCHA_SESSION_RETURL] = $_SERVER['REQUEST_URI'];
// POST,GET¥Ç¡¼¥¿
$_SESSION[RECAPTCHA_SESSION_HTTP_POST] = $_POST;
$_SESSION[RECAPTCHA_SESSION_HTTP_GET] = $_GET;
$_SESSION[RECAPTCHA_SESSION_AGENT] = $_SERVER['HTTP_USER_AGENT'];
$_SESSION[RECAPTCHA_SESSION_COOKIE] = $_COOKIE;
header("location: index.php?plugin=recaptcha");
exit;
}
}
}
}
// <- 2008.02.26 s.g.kohata(reCaptcha)
if (exist_plugin_action($plugin)) {
// Found and exec
$retvars = do_plugin_action($plugin);
if ($retvars === FALSE) exit; // Done
3.reCAPTCHA¤Î¥µ¥¤¥È¤Ç¡¢ÍøÍÑÅÐÏ¿¤ò¤·¤Þ¤¹¡£
¡¡http://recaptcha.net/whyrecaptcha.html ¤Î[Sign up Now!]¤ÇÍøÍÑÅÐÏ¿¤¬²Äǽ¤Ç¤¹¡£
4.plugin/recaptcha.ini.php¤ò³«¤¤¤Æ²¼µ¤ÎÀßÄꤷ¤Þ¤¹¡£
4-1.¡ØRECAPTCHA_PUBLICKEY¡Ù¤È¡ØRECAPTCHA_PRIVATEKEY¡Ù¤Ë3.¤ÇÅÐÏ¿¤·¤¿¸ø³«¥¡¼¤ÈÈëÌ©¥¡¼¤òÆþ¤ì¤Þ¤¹¡£
// http://recaptcha.net/whyrecaptcha.html ¤Î[Sign up Now!]¤ÇÅÐÏ¿¤·¤¿ÃͤÎÀßÄê
define('RECAPTCHA_PUBLICKEY', '¸ø³«¥¡¼¤òÆþ¤ì¤Æ¤¯¤À¤µ¤¤');
define('RECAPTCHA_PRIVATEKEY', 'ÈëÌ©¥¡¼¤òÆþ¤ì¤Æ¤¯¤À¤µ¤¤');
4-2.¡ØRECAPTCHA_ENABLE_PLUGINS¡Ù¤ËreCAPTCHA¤Îǧ¾Ú¤¬É¬Íפˤʤë¥×¥é¥°¥¤¥ó̾¤ò ,(¥«¥ó¥Þ)¶èÀÚ¤ê¤ÇÆþ¤ì¤Þ¤¹¡£
¡¡¥Ç¥Õ¥©¥ë¥È¤Ï¡Øcomment,newpage,edit,memo,memo2,vote,tracker¡Ù¤¬»ØÄꤷ¤Æ¤¢¤ê¤Þ¤¹¡£
// reCAPTCHA¤ÎÂоݤȤ¹¤ë¥×¥é¥°¥¤¥ó̾
define('RECAPTCHA_ENABLE_PLUGINS', 'comment,newpage,edit,memo,memo2,vote,tracker');
4-3.pukiwiki¤ËBASICǧ¾Ú¤¬¤«¤«¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¥æ¡¼¥¶Ì¾¤È¥Ñ¥¹¥ï¡¼¥É¤ò
¡¡¡ØRECAPTCHA_BASICAUTH_USER¡Ù¤È¡ØRECAPTCHA_BASICAUTH_PW¡Ù¤ËÆþ¤ì¤Þ¤¹¡£
¡¡¢¨BASICǧ¾Ú¤¬¤Ê¤¤¾ì¹ç¤Ï¤½¤Î¤Þ¤Þ¤Ç·ë¹½¤Ç¤¹¡£
// pukiwiki¤Ø¤Î¥¢¥¯¥»¥¹¤ËBASICǧ¾Ú¤¬É¬Íפˤʤë¾ì¹ç¤ÏÅÐÏ¿¤·¤Þ¤¹
define('RECAPTCHA_BASICAUTH_USER', '');
define('RECAPTCHA_BASICAUTH_PW', '');
5.ưºî³Îǧ¤È¤·¤Æ¡¢pukiwiki¤ò³«¤¤¤Æ¥Ú¡¼¥¸¤Î¡ÖÊÔ½¸¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤¿¸å¤Ç¡¢
¡¡reCAPTCHA¤Îǧ¾Ú¤¬É½¼¨¤µ¤ì¤ë¤Î¤Ç¡¢2¤Ä¤Îñ¸ì¤òÆþÎϤ·¤Æ[³Îǧ]¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£
¡¡¤½¤Î¸å¡¢¥Ú¡¼¥¸¿·µ¬ºîÀ®¤Î¥Æ¥¥¹¥È¥Õ¥£¡¼¥ë¥É¤¬É½¼¨¤µ¤ì¤ë¤è¤¦¤Ê¤éÀßÄ괰λ¤Ç¤¹¡£
** ¹¹¿·ÍúÎò [#ffb169cb]
- 2008/05/08 Âè°ì¼¡¸ø³«
- 2008/04/16 ¥Ù¡¼¥¿ÈÇ´°À®
#blikifooter(Ãݼ)
- ËܲȤ˥³¥ó¥È¥ê¥Ó¥å¡¼¥È¤·¤Þ¤·¤¿¡£ -- [[Ãݼ]] &new{2008-05-08 (ÌÚ) 18:49:51};
-- http://pukiwiki.sourceforge.jp/?plugin=related&page=%E8%87%AA%E4%BD%9C%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%2FreCAPTCHA.tgz
-- [[pukiwiki:¼«ºî¥×¥é¥°¥¤¥ó/reCAPTCHA.tgz]]
#comment
tag: [[PHP>tag/PHP]], [[PukiWiki>tag/PukiWiki]], [[Spam>tag/Spam]], [[reCAPTCHA>tag/reCAPTCHA]], [[CAPTCHA>tag/CAPTCHA]]