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 關注
- 757 瀏覽
添加回答
舉報
0/150
提交
取消
