為什麼PHP寫的驗證碼會被暴力破解,如何能做到不被暴力破解呢?還有驗證碼一定要依賴COOKIE和SESSION嗎?詳細點
回複內容:
為什麼PHP寫的驗證碼會被暴力破解,如何能做到不被暴力破解呢?還有驗證碼一定要依賴COOKIE和SESSION嗎?詳細點
要弄清楚為什麼要加驗證碼功能,驗證碼如果沒有做的好,就等於形同虛設,一般性的驗證碼能夠防刷以及機器註冊等等, 你所說的暴力破解,是屬於另一種情況,是因為驗證碼本身太簡單而容易被破解軟體識別,一般的由數字和字母構成,這也是為什麼有的網站的驗證碼做成模糊的斜線或者虛線幹擾形式的原因,驗證碼存取一般都會用session,cookie也可以,伺服器端除了要做匹配驗證、非空驗證,而且一旦一次請求完畢,必須把session或者cookie清除掉,否則和沒有驗證碼是一樣的。。。。
驗證碼不過是一道虛掩的門,有專門的服務拆驗證碼(1分錢左右一個),題主死心吧。
簡訊驗證 哈
是你驗證碼太簡單,和語言沒關係。
不用 cookies 就用網址傳 session。
暴力破壞大法通殺一切驗證措施,防不勝防。
能否爆破於php本身無關。
圖片驗證碼非唯一的逆向圖靈測試反機器人途徑,必須綜合多種方式,例如同IP操作頻率限制等。
不需要Cookies或Session,只要你能克服TCP鏈接的固有缺點——非會話式,即需要做到通過一種途徑記錄並識別同一訪客。除了常見的Cookies和Session,通過表單/URL傳ID也是個不錯的方法。
PHP有一個選項,即允許通過URL傳遞Session ID。。。其實你自己實現其他方法,原理還是Session,而且安全性和效能可能反而不如php自己的Session。
cookies也是基於session的,但是只要是程式就有破解的可能,只能說做好安全措施,提高破解的門檻方為上策
你訪問登入頁時,系統隨機產生4位元字比如2014,並產生數字為2014的圖片,還有最重要的一步就是在伺服器端將2014與在伺服器端你的
session 相對應。
你輸入驗證碼提交後,系統從你的 cookie 裡讀取 session ,取出你提交的驗證碼;與伺服器端儲存的 session 和 2014相比較,如果匹配產生說明輸入正確,不成功會重做第一步產生新的驗證碼。
基本上現在的驗證碼都是這種方式。