亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP-表單令牌防止重復提交原理?

PHP-表單令牌防止重復提交原理?

藍山帝景 2019-03-31 06:02:36
PHP-表單令牌防止重復提交原理
查看完整描述

3 回答

?
慕森王

TA貢獻1777條經驗 獲得超3個贊

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

查看完整回答
反對 回復 2019-04-04
?
狐的傳說

TA貢獻1804條經驗 獲得超3個贊

這只是一個小技巧,用來避免一個表單的重復提交。這樣多少可以防止一些灌水的現象,另外有時候由于網絡狀況等原因用戶不知道提交是否成功,也會再次提交同一份表單。 這個技巧的主要原理是不允許用戶回退后再次提交,也就是說回退后修改再提交也是不允許的,而且也不能避免Ctrl-C/Ctrl-V的灌水辦法。究竟有沒有用,還是看各位站長的喜好了 你是否遇到過“重復提交”的問題?要解決這個問題其實并不難。這里有一個簡單的方法避免同一表單的重復提交。 首先,我們可以定義一個session變量用來保存一個表單的提交序列號。這里我定義為“$userLastAction”。然后在表單里加入一個hidden變量,把值設為$userLastAction+1: 最后,在處理提交之前判斷表單是否已被提交過: if($lastAction$userLastAction and inputIsValid(...)){// 處理表單數據}

查看完整回答
反對 回復 2019-04-04
  • 3 回答
  • 0 關注
  • 916 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號