W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
另一個(gè)大問題是 CSRF 。這是一個(gè)非常復(fù)雜的話題,我不會(huì)在此詳細(xì)介紹,而只會(huì) 提及 CSRF 是什么和理論上如何避免它。
如果你的驗(yàn)證信息存儲(chǔ)在 cookie 中,你有隱式的狀態(tài)管理?!耙训侨搿睜顟B(tài)由一個(gè) cookie 控制,并且這個(gè) cookie 在每個(gè)頁面的請(qǐng)求中都會(huì)發(fā)送。不幸的是,在第三 方站點(diǎn)觸發(fā)的請(qǐng)求中也會(huì)發(fā)送這個(gè) cookie 。如果你不注意這點(diǎn),一些人可能會(huì)通過 社會(huì)工程學(xué)來誘導(dǎo)你應(yīng)用的用戶在他們不知道的情況下做一些蠢事。
比如你有一個(gè)指定的 URL ,當(dāng)你發(fā)送 POST 請(qǐng)求時(shí)會(huì)刪除一個(gè)用戶的資料(比如 http://example.com/user/delete 。如果一個(gè)攻擊者現(xiàn)在創(chuàng)造一個(gè)頁面來用 JavaScript 發(fā)送這個(gè) post 請(qǐng)求,他們只是誘騙一些用戶加載那個(gè)頁面,而他們 的資料最終會(huì)被刪除。
想象你在運(yùn)行 Facebook ,有數(shù)以百萬計(jì)的并發(fā)用戶,并且某人放出一些小貓圖片 的鏈接。當(dāng)用戶訪問那個(gè)頁面欣賞毛茸茸的貓的圖片時(shí),他們的資料就被刪除。
你怎樣才能阻止這呢?基本上,對(duì)于每個(gè)修改服務(wù)器上內(nèi)容的請(qǐng)求,你應(yīng)該使用 一次性令牌,并存儲(chǔ)在 cookie 里, 并且 在發(fā)送表單數(shù)據(jù)的同時(shí)附上它。 在服務(wù)器再次接收數(shù)據(jù)之后,你要比較兩個(gè)令牌,并確保它們相等。
為什么 Flask 沒有為你這么做?理想情況下,這應(yīng)該是表單驗(yàn)證框架做的事,而 Flask 中并不存在表單驗(yàn)證。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: