目前還是最常用來防止機器人最基本的方法,當然已經有很多破解方式


下列網址列出幾項已經被破解的方式,還有那些比較不容易被破解的
 
http://caca.zoy.org/wiki/PWNtcha


當然相對難破解的缺點是--->難以辨認


所以選擇一套折衷的套件是很重要的:

http://www.phpcaptcha.org/try-securimage/ 

目前我使用的是這套,線條、雜訊干擾,還可以自訂字形。


另外,重新整理必備外,還可以播放語音。


不過他是用物件來存取,還滿方便的 

使用方法如下:
//前端顯示部分(HTML)
CAPTCHA Image

[ Different Image ]


//PHP接收部分
session_start();
//使用session紀錄captcha code,所以要啟用Session
include_once $_SERVER['DOCUMENT_ROOT'] . '/securimage/securimage.php';
//引入securimage的檔案
$securimage = new Securimage();
//物件寫法,新增成員函數 securimage
if ($securimage->check($_POST['captcha_code']) == false) {
// 確認POST過來的code是否正確
// 錯誤的話,請在此撰寫離開的Code

// 或者使用前端語法告知使用者並帶離開
echo "The security code entered was incorrect.

";
echo "Please go back and try again.";
exit;
}

另外我個人做了AJAX驗證,如果使用上面的code會有個缺點:

if ($securimage->check($_POST['captcha_code']) == false)

會把Session消滅,所以我在AJAX驗證時我是改用:
if ($securimage->getCode() == strtolower($_POST['captcha']))

這樣就可以多提交幾次,這是為了讓使用者方便點,不會每次都要送出後才驗證

(其實一方面是怕太複雜,使用者真的看不懂)
arrow
arrow
    全站熱搜

    Matt 發表在 痞客邦 留言(0) 人氣()