thinkphp內建了表單令牌驗證功能,可以有效防止表單的重複提交等安全防護。
表單令牌驗證相關的配置引數有:
'token_on'
=>
true
,// 是否開啟令牌驗證
'token_name'
=>
'__hash__'
,// 令牌驗證的表單隱藏欄位名稱
'token_type'
=>
'md5'
,//令牌雜湊驗證規則 預設為md5
'token_reset'
=>
true
,//令牌驗證出錯後是否重置令牌 預設為true
如果開啟表單令牌驗證功能,系統會自動在帶有表單的模板檔案裡面自動生成以token_name為名稱的隱藏域,其值則是token_type方式生成的雜湊字串,用於實現表單的自動令牌驗證。
自動生成的隱藏域位於表單form結束標誌之前,如果希望自己控制隱藏域的位置,可以手動在表單頁面新增 標識,系統會在輸出模板的時候自動替換。
如果頁面中存在多個表單,建議新增標識,並確保只有乙個表單需要令牌驗證。
如果個別頁面輸出不希望進行表單令牌驗證,可以在控制器中的輸出方法之前動態關閉表單令牌驗證,例如:c
('token_on'
,false
);$this
->
display
();模型類在建立資料物件的同時會自動進行表單令牌驗證操作,如果你沒有使用create方法建立資料物件的話,則需要手動呼叫模型的autochecktoken方法進行表單令牌驗證。如果返回false,則表示表單令牌驗證錯誤。例如:$user =m
("user"
);// 例項化user物件
// 手動進行令牌驗證
if(!
$user
->
autochecktoken
($_post
))
ThinkPHP 防止表單重複提交的方法
防止表單重複提交有很多種方法,其不外乎,客戶端指令碼防止重新整理,服務端token驗證等等,thinkphp內建了表單token驗證,可以方便的防止表單重複提交,然而有一種情況,是防止不了的 使用者提交表單以後,點選瀏覽器後退按鈕返回表單頁面,這個時候瀏覽器會直接從快取中取出頁面,因此token驗證...
Struts2學習10 防止表單的重複提
一 簡介 struts2使用 token 來檢查表單是否重複提交,採用的是同步令牌的方式。同步令牌方式 伺服器端在處理到達的請求之前,會將請求中包含的令牌值與儲存在當前使用者會話中的令牌值進行比較,看是否匹配。在處理完該請求後,且在答 送給客戶端之前,將會產生乙個新的令牌,該令牌除傳給客戶端以外,也...
防止表單重複提交
新增乙個使用者時,發現重複新增了4 5個,原來是重複提交了。怎麼解決這個問題呢,起初是在後端檢查新增的屬性是否已有,例如姓名和手機號是否重複,如果重複就不儲存,沒想到後來隨著業務的複雜化,新增乙個使用者所需時間越來越長,以致在檢查時還沒插入完畢。那就在提交時就關閉form,可是這樣一來,如果後端檢查...