摘要:下次客戶端提交請(qǐng)求時(shí),會(huì)隨著表單一起提交到服務(wù)器端。簡單利用防止表單重復(fù)提交此處理方法純粹是為了給初學(xué)者參考如果為空則生成一個(gè)成功提交,提交
Token淺談
Token,就是令牌,最大的特點(diǎn)就是隨機(jī)性,不可預(yù)測(cè)。一般黑客或軟件無法猜測(cè)出來。
那么,Token有什么作用?又是什么原理呢?
Token一般用在兩個(gè)地方——防止表單重復(fù)提交、anti csrf攻擊(跨站點(diǎn)請(qǐng)求偽造)。
兩者在原理上都是通過session token來實(shí)現(xiàn)的。當(dāng)客戶端請(qǐng)求頁面時(shí),服務(wù)器會(huì)生成一個(gè)隨機(jī)數(shù)Token,并且將Token放置到session當(dāng)中,然后將Token發(fā)給客戶端(一般通過構(gòu)造hidden表單)。下次客戶端提交請(qǐng)求時(shí),Token會(huì)隨著表單一起提交到服務(wù)器端。
然后,如果應(yīng)用于“anti csrf攻擊”,則服務(wù)器端會(huì)對(duì)Token值進(jìn)行驗(yàn)證,判斷是否和session中的Token值相等,若相等,則可以證明請(qǐng)求有效,不是偽造的。
不過,如果應(yīng)用于“防止表單重復(fù)提交”,服務(wù)器端第一次驗(yàn)證相同過后,會(huì)將澀session中的Token值更新下,若用戶重復(fù)提交,第二次的驗(yàn)證判斷將失敗,因?yàn)橛脩籼峤坏谋韱沃械腡oken沒變,但服務(wù)器端session中Token已經(jīng)改變了。
上面的session應(yīng)用相對(duì)安全,但也叫繁瑣,同時(shí)當(dāng)多頁面多請(qǐng)求時(shí),必須采用多Token同時(shí)生成的方法,這樣占用更多資源,執(zhí)行效率會(huì)降低。因此,也可用cookie存儲(chǔ)驗(yàn)證信息的方法來代替session Token。比如,應(yīng)對(duì)“重復(fù)提交”時(shí),當(dāng)?shù)谝淮翁峤缓蟊惆岩呀?jīng)提交的信息寫到cookie中,當(dāng)?shù)诙翁峤粫r(shí),由于cookie已經(jīng)有提交記錄,因此第二次提交會(huì)失敗。
不過,cookie存儲(chǔ)有個(gè)致命弱點(diǎn),如果cookie被劫持(xss攻擊很容易得到用戶cookie),那么又一次gameover。黑客將直接實(shí)現(xiàn)csrf攻擊。
"; echo "token:".$_SESSION["token"]; } } ?>
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/28636.html
摘要:我們提交表單的時(shí)候,不能忽視的一個(gè)限制是防止用戶重復(fù)提交表單,因?yàn)橛锌赡苡脩暨B續(xù)點(diǎn)擊了提交按鈕或者是攻擊者惡意提交數(shù)據(jù),那么我們?cè)谔峤粩?shù)據(jù)后的處理如修改或添加數(shù)據(jù)到數(shù)據(jù)庫時(shí)就會(huì)惹上麻煩。我們現(xiàn)在來了解下簡單的利用來防止表單重復(fù)提交的方法。 我們提交表單的時(shí)候,不能忽視的一個(gè)限制是防止用戶重復(fù)提交表單,因?yàn)橛锌赡苡脩暨B續(xù)點(diǎn)擊了提交按鈕或者是攻擊者惡意提交數(shù)據(jù),那么我們?cè)谔峤粩?shù)據(jù)后的處理如...
摘要:注意設(shè)計(jì)模式并不適用所有的重復(fù)提交情況,比如由于服務(wù)器響應(yīng)緩慢,用戶刷新提交請(qǐng)求造成的重復(fù)提交。用戶惡意避開客戶端預(yù)防多次提交手段,進(jìn)行重復(fù)數(shù)據(jù)提交。 表單重復(fù)提交的常見應(yīng)用場(chǎng)景?1、在網(wǎng)絡(luò)延遲的情況下讓用戶又是加你點(diǎn)擊多次submit按鈕導(dǎo)致?2、表單提交后用戶點(diǎn)擊刷新按鈕導(dǎo)致表單重復(fù)提交?3、用戶表單提交后,點(diǎn)擊瀏覽器后退按鈕退回表單頁面后進(jìn)行再次提交 很多情況下,重復(fù)提交的數(shù)據(jù),...
摘要:注意設(shè)計(jì)模式并不適用所有的重復(fù)提交情況,比如由于服務(wù)器響應(yīng)緩慢,用戶刷新提交請(qǐng)求造成的重復(fù)提交。用戶惡意避開客戶端預(yù)防多次提交手段,進(jìn)行重復(fù)數(shù)據(jù)提交。 表單重復(fù)提交的常見應(yīng)用場(chǎng)景?1、在網(wǎng)絡(luò)延遲的情況下讓用戶又是加你點(diǎn)擊多次submit按鈕導(dǎo)致?2、表單提交后用戶點(diǎn)擊刷新按鈕導(dǎo)致表單重復(fù)提交?3、用戶表單提交后,點(diǎn)擊瀏覽器后退按鈕退回表單頁面后進(jìn)行再次提交 很多情況下,重復(fù)提交的數(shù)據(jù),...
摘要:于是乎服務(wù)器向用戶瀏覽器發(fā)送了一個(gè)名為的,它的值是的值。標(biāo)記著該用戶已經(jīng)登陸了跳轉(zhuǎn)到其他頁面,告訴用戶成功登陸了。注冊(cè)多個(gè)用戶,不斷發(fā)帖子,擾亂正常發(fā)帖秩序。在處理表單的中刷新。監(jiān)聽用戶提交事件。 什么是Session Session 是另一種記錄瀏覽器狀態(tài)的機(jī)制。不同的是Cookie保存在瀏覽器中,Session保存在服務(wù)器中。用戶使用瀏覽器訪問服務(wù)器的時(shí)候,服務(wù)器把用戶的信息以某種...
閱讀 2166·2021-10-08 10:15
閱讀 1194·2019-08-30 15:52
閱讀 523·2019-08-30 12:54
閱讀 1541·2019-08-29 15:10
閱讀 2693·2019-08-29 12:44
閱讀 3015·2019-08-29 12:28
閱讀 3362·2019-08-27 10:57
閱讀 2222·2019-08-26 12:24