javascript - 為什麼PHP寫的驗證碼會被暴力破解,如何能做到不被暴力破解呢?還有驗證碼一定要依賴COOKIE和SESSION嗎?

來源:互聯網
上載者:User
為什麼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的,但是只要是程式就有破解的可能,只能說做好安全措施,提高破解的門檻方為上策

  • 破解也只是圖片識別,所以現在很多驗證碼越來越難認,登個錄都他麼要打好幾次驗證碼。
  • 在用戶端只有 cookie,session 只是儲存在cookie裡的,拿sf講,名字為sfsess的cookie的值就是session ,就是那一大串數字字母,網站伺服器端存有一份相同的 session ,與你的帳號對應證明你登入了。從安全形度講,儲存在服務端才是最安全的,如果只在cookie裡儲存驗證碼結果,那麼破解就相當簡單了。

    舉例來講:

  1. 你訪問登入頁時,系統隨機產生4位元字比如2014,並產生數字為2014的圖片,還有最重要的一步就是在伺服器端將2014與在伺服器端你的
    session 相對應。

  2. 你輸入驗證碼提交後,系統從你的 cookie 裡讀取 session ,取出你提交的驗證碼;與伺服器端儲存的 session 和 2014相比較,如果匹配產生說明輸入正確,不成功會重做第一步產生新的驗證碼。

    基本上現在的驗證碼都是這種方式。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.