成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

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

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

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

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