国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

后端防止重復(fù)提交 “利用Token解決重復(fù)提交”背后的前提是什么?

“利用Token解決重復(fù)提交”背后的前提是什么?Struts本身有一套完善的令牌機(jī)制,可以防止表單被重復(fù)提交,但是作者目前的項(xiàng)目自寫框架沒有使用Struts,因此它還必須編寫令牌機(jī)制,防止用戶因?yàn)榉祷?/p>

“利用Token解決重復(fù)提交”背后的前提是什么?

Struts本身有一套完善的令牌機(jī)制,可以防止表單被重復(fù)提交,但是作者目前的項(xiàng)目自寫框架沒有使用Struts,因此它還必須編寫令牌機(jī)制,防止用戶因?yàn)榉祷鼗蛩⑿露貜?fù)提交表單內(nèi)容。這并不難,很容易實(shí)現(xiàn)。

實(shí)施原則:一致性。當(dāng)JSP生成表單時,它會在表單中插入一個隱藏字段,即保存在頁面一側(cè)的標(biāo)記字符串,并將該字符串存儲到會話中。當(dāng)用戶提交表單時,將提交隱藏的令牌字符串。在服務(wù)器端,檢查會話是否包含與令牌字符串相等的字符串。如果有,則表示該表單是第一次提交,然后刪除會話端存儲的令牌字符串,然后進(jìn)行正常的業(yè)務(wù)邏輯處理;如果沒有,則表示該表單是重復(fù)提交的,進(jìn)行異常的流程處理,以及警告提示,否則什么也做不了。百度最常用的方法是使用代幣。即:

1。生成頁時生成一個令牌(隨機(jī)字符串),并同時將其寫入窗體和服務(wù)器會話的隱藏部分。

2. 當(dāng)客戶端向服務(wù)器提交表單時,它會比較表單中的令牌是否與會話中的令牌一致。否則,請求將被視為無效。

3. 無論第二步的驗(yàn)證是否通過,只要使用一次,令牌就會作廢(即從會話中銷毀)。同時,令牌還可以關(guān)聯(lián)時間信息,超時后自動失效。這樣,即使客戶端重復(fù)提交,也只有第一個請求才能成功。