php 圖形驗證碼,正確構思

php 圖形 驗證碼 圖片 驗証碼 image verify code

圖形驗證碼有很多地方都用的到,註冊、申請、登入、發文、回覆 ● ● ● 等頁面,主要是用來防堵暴力取得帳密【盜號】,還有防治發廣告機

圖片是不能copy裡面的英文數字,也不像html或js代碼那樣,可以用一定的方式來反譯及破解,只需要將圖片內容加上浮動效果及些許干擾碼,這樣要解析圖片內的東西就非常不易了
  
有些網站貪圖方便,註冊及登入頁沒圖形驗證碼,其實很抖,密碼都要設到12元以上,還頗為麻煩,畢竟不是發文,註冊及登入算一次性作業,如果你是站長,建議可以用一下圖形驗證碼

範例檔案,請下載【 sample003.zip 】這個檔案


drive.googleonedrive.liveasuswebstoragesync.hamicloud.net


7-zip 解壓後,再用 notepad++ 之類的文字處理軟體開啟即可

這是個簡單的php圖形驗證碼,隨機抓6個英文字小寫,後將值放到session存放,並生成圖片顯示於提交頁





按下提交後,post和session這2個值,如果一樣,就ok通過





避免被瀏覽器解析,代碼用成圖片







我想大家在網上找,php驗證碼code時,不少範例都是上述這樣寫法,我指的是構思方面,不是指內容部份,有看出什麼缺點嗎?

這樣的寫法,很容易失效,而且不用圖形解析,就會被暴力灌水機突破,為何呢?

因為用來產生隨機值的部份是在圖片生成php內,那些灌水機只要攻擊用來檢查session與post值的php就好,不去執行圖片生成php,session內的值就不會改變,只要循序匹配,早晚會通過






正確的寫法,應該是檢查值與隨機產生值的部份,寫在同一個php文件內,只要匹配錯誤就重刷比對值,而生成圖片的php文件,只是單純抓值顯示,這樣才ok





上圖修改後的範例文件,請下載【 sample004.zip 】這個檔案


drive.googleonedrive.liveasuswebstoragesync.hamicloud.net


7-zip 解壓後,再用 notepad++ 之類的文字處理軟體開啟即可

最後,提醒一下,如果要參考或拿來使用,請使用【 sample004.zip 】內的方式


關聯文章 → Google reCAPTCHA Challenge 驗證盤問之 keys 申請說明


關聯文章 → reCAPTCHA 範例解說:使用 reCAPTCHA V2 類型【圖文教學】


關聯文章 → reCAPTCHA 範例解說:使用 Invisible reCAPTCHA 類型【圖文教學】


Thank you for reading

發表留言

秘密留言

點入後,可購買的產品

 

 

 

 

 

 

搜尋欄
PTC 點賺