PHP-表單令牌防止重復提交原理
3 回答

慕的地10843
TA貢獻1785條經驗 獲得超8個贊
最常用的方法就是利用token。即:
1、在生成頁面的時候生成一個token(隨機字符串),并把它同時寫入表單的某個hidden中,和服務端的session中。
2、客戶端提交表單到服務器時,比對表單中的token與session中的token是否一致。若不一致則認為是無效的請求。
3、不管第2步的校驗是否通過,token只要使用一次后就立即作廢(即:從session中銷毀)。同時token也可以關聯時間信息,超時后也自動作廢。
這樣,即便客戶端重復提交,也只有第一次的請求能夠成功。

小怪獸愛吃肉
TA貢獻1852條經驗 獲得超1個贊
可以在當前頁面里設置一個變量,通過這個變量來確定是否已經提交了,如果提交過了就不再提交。
示例代碼:
123456789101112131415 | <script language= "javascript" > var checkSubmitFlg = false ; function checkSubmit(){ if (checkSubmitFlg == true ){ return false ; //當表單被提交過一次后checkSubmitFlg將變為true,根據判斷將無法進行提交。 } checkSubmitFlg == true ; return true ; } < /script > < form name= "form1" method= "post" onsubmit= "return checkSubmit();" > ……….. < /form> |
- 3 回答
- 0 關注
- 748 瀏覽
添加回答
舉報
0/150
提交
取消