目前還是最常用來防止機器人最基本的方法,當然已經有很多破解方式
下列網址列出幾項已經被破解的方式,還有那些比較不容易被破解的
http://caca.zoy.org/wiki/PWNtcha
當然相對難破解的缺點是--->難以辨認
所以選擇一套折衷的套件是很重要的:
http://www.phpcaptcha.org/try-securimage/
目前我使用的是這套,線條、雜訊干擾,還可以自訂字形。
另外,重新整理必備外,還可以播放語音。
不過他是用物件來存取,還滿方便的
使用方法如下:
另外我個人做了AJAX驗證,如果使用上面的code會有個缺點:
會把Session消滅,所以我在AJAX驗證時我是改用:
這樣就可以多提交幾次,這是為了讓使用者方便點,不會每次都要送出後才驗證
(其實一方面是怕太複雜,使用者真的看不懂)
下列網址列出幾項已經被破解的方式,還有那些比較不容易被破解的
http://caca.zoy.org/wiki/PWNtcha
當然相對難破解的缺點是--->難以辨認
所以選擇一套折衷的套件是很重要的:
http://www.phpcaptcha.org/try-securimage/
目前我使用的是這套,線條、雜訊干擾,還可以自訂字形。
另外,重新整理必備外,還可以播放語音。
不過他是用物件來存取,還滿方便的
使用方法如下:
//前端顯示部分(HTML)
[ 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']))
這樣就可以多提交幾次,這是為了讓使用者方便點,不會每次都要送出後才驗證
(其實一方面是怕太複雜,使用者真的看不懂)
全站熱搜
留言列表