php 圖形 驗證碼 圖片 驗証碼 image verify code
圖形驗證碼有很多地方都用的到,註冊、申請、登入、發文、回覆 ● ● ● 等頁面,主要是用來防堵暴力取得帳密【盜號】,還有防治發廣告機
圖片是不能copy裡面的英文數字,也不像html或js代碼那樣,可以用一定的方式來反譯及破解,只需要將圖片內容加上浮動效果及些許干擾碼,這樣要解析圖片內的東西就非常不易了
有些網站貪圖方便,註冊及登入頁沒圖形驗證碼,其實很抖,密碼都要設到12元以上,還頗為麻煩,畢竟不是發文,註冊及登入算一次性作業,如果你是站長,建議可以用一下圖形驗證碼
範例檔案,請下載【 sample003.zip 】這個檔案
drive.google 、 onedrive.live 、 asuswebstorage 、 sync.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.google 、 onedrive.live 、 asuswebstorage 、 sync.hamicloud.net
用 7-zip 解壓後,再用 notepad++ 之類的文字處理軟體開啟即可
最後,提醒一下,如果要參考或拿來使用,請使用【 sample004.zip 】內的方式
關聯文章 → Google reCAPTCHA Challenge 驗證盤問之 keys 申請說明
關聯文章 → reCAPTCHA 範例解說:使用 reCAPTCHA V2 類型【圖文教學】
關聯文章 → reCAPTCHA 範例解說:使用 Invisible reCAPTCHA 類型【圖文教學】
Thank you for reading
sample004.zip 的檔案在哪裡可以下載到。
回覆刪除.
刪除詳細看一下連結,裡面有附上 sample004.zip
.
請問一下 我把004的檔案拿來用 有改名成code 結果
回覆刪除Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\AppServ\www\index.php:8) in C:\AppServ\www\code.php on line 5
是 判斷session是否已啟 這段 放上網路上這段一直出現錯誤字樣
我該怎樣修改呢? 請求大大幫忙
.
回覆刪除編輯軟體請使用notepad++,不要用記事本
http://zfly9.blogspot.tw/2013/02/notepad.html
編輯網頁代碼要特別留意,不然會含到BOM標籤,開頭會輸出2字元,session前面不能有任何網頁輸出,那段錯誤是說,已經有東西輸出了
程式不要動,把sample004目錄改為004,後127.0.0.1/004/執行看看
.
.
回覆刪除那個BOM標籤看不見,是給文件判斷是否為utf8用的,編寫網頁代碼不需要這東西
現今網頁主流都是utf8格式,notepad++內,有教如何轉成utf8不含bom
utf8不含bom的文件,不用轉,notepad++右下就可以看什麼格式
.
請教一下, 我檔案都沒有修改直接放到 www root 下, 但圖形驗証碼沒圖片顯示不出來是何原因? 謝謝
回覆刪除.
刪除沒GP庫,或session設置出錯,你下載php探針,看看環境
http://zfly9.blogspot.tw/2009/08/phpinfos.html
見下圖那2項
http://i.imgur.com/c27CW7M.png
.
版大您好:
回覆刪除我下載sample004.zip,有出現圖片,但是我還沒有輸入驗證碼,或是輸入錯誤的驗證碼,也可以送出
需要加入什麼語法嗎?
謝謝指教!
.
刪除沒有輸入驗證碼,或輸入錯誤的驗證碼,也可以送出,只是不會通過,一直在驗證頁
.