我今天試圖註冊Twitter,並注意到他們的註冊表沒有驗證碼。表格URL是https://twitter.com/signup。我還注意到他們使用瞭如下的輸入。用戶註冊表單沒有驗證碼?
<input name="authenticity_token" type="hidden" value="ce803cee65a96aaa97bdf75da166599c3adc9ec8" />
這是什麼樣的方法?
當用戶訪問註冊表單時,他們是否在其數據庫中創建臨時值?並在用戶提交表單時檢查它?
我今天試圖註冊Twitter,並注意到他們的註冊表沒有驗證碼。表格URL是https://twitter.com/signup。我還注意到他們使用瞭如下的輸入。用戶註冊表單沒有驗證碼?
<input name="authenticity_token" type="hidden" value="ce803cee65a96aaa97bdf75da166599c3adc9ec8" />
這是什麼樣的方法?
當用戶訪問註冊表單時,他們是否在其數據庫中創建臨時值?並在用戶提交表單時檢查它?
authenticity_token
是Ruby-on-Rails的一個功能,其中編寫了Twitter。
See this question。
我不能肯定地說,但我確實知道有些人已經使用Javascript來動態地做東西,也就是將隱藏的輸入設置爲一些隨機但期望的值。這假定大多數自動化客戶端不會解析Javascript。
它被稱爲CSRF保護,並且與驗證碼無關。我們可以通過調度兩個後續的HTTP請求來遠程模擬用戶行爲和註冊:從前一個結果中刮掉令牌並將其與POST數據合併。 – sepehr 2012-09-01 06:20:04