成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

說說 XSRF 防范

蘇丹 / 891人閱讀

摘要:應(yīng)用了哈希簽名的密碼學(xué)技術(shù),相比的方式就是服務(wù)端可以不用在內(nèi)存或者緩存存放,能節(jié)省存儲(chǔ)資源,不過同時(shí)服務(wù)器需要通過計(jì)算來驗(yàn)證也浪費(fèi)了計(jì)算資源。因?yàn)橛昧斯C荑€簽名的技術(shù),這樣就可以防止篡改內(nèi)容。這樣的安全防護(hù)就能抵御所有的攻擊了。

這是我在知乎的一個(gè)回答。原提問是如何在單頁應(yīng)用下進(jìn)行 XSRF 防護(hù)。

XSRF(CSRF) 攻擊的原理是什么?就是攻擊者能猜測(cè)出所有的需要提交的內(nèi)容以及類型,所以所有的解決方案共同出發(fā)點(diǎn)就是加一個(gè)攻擊者也不知道隨機(jī)值發(fā)送給后端驗(yàn)證就可以防范。

有很多解決方案,cookie-session,很不友好的所有表單都得填寫驗(yàn)證碼,還有一種很少人知道 JSON Web Token。

驗(yàn)證碼(圖形或者手機(jī))這種就不說了吧,這個(gè)在互聯(lián)網(wǎng)場(chǎng)景中因?yàn)橛脩趔w驗(yàn)原因幾乎沒有應(yīng)用的。

首先要知道直接讓后端驗(yàn)證 cookie 是否存在正確是不可取的,因?yàn)樗姓?qǐng)求都會(huì)自動(dòng)附帶請(qǐng)求所在域的 cookie,當(dāng)然只驗(yàn)證 http referrer 也是不靠譜的。

正確的方式是當(dāng)用戶進(jìn)行登錄請(qǐng)求的時(shí)候,這時(shí)候后端應(yīng)該把包含 xsrf 字段的 cookie 保存在 session 中并且返還給前端,前端需要獲取到 cookie 中的值并且能放入 ajax 請(qǐng)求體或請(qǐng)求頭中,后端把這個(gè)值與 session 中的相應(yīng)值進(jìn)行判斷就可以了,根據(jù)跨域不可訪問不同域的 cookie ,攻擊者也很難猜測(cè)出 xsrf 的值,那么這樣就防范了 xsrf 攻擊。

所以這里對(duì) xsrf cookie 不能設(shè)置 httpOnly(當(dāng)然就會(huì)有 XSS 問題,后面會(huì)提),同時(shí)提一句所以的 Token 必須得讓后端設(shè)置 expire 過期時(shí)間。

這個(gè) axios 就提供了這個(gè)功能,只要設(shè)置約定好 xsrf cookie字段名就可以了,axios 獲取到值后默認(rèn)是放入 request header 中,這也是業(yè)界最流行的方式。

如果不是單頁應(yīng)用都是后端在表單中加入一個(gè)隱藏的表單域。

當(dāng)然還有JWT,這個(gè)主要應(yīng)用場(chǎng)景是 app,因?yàn)?app 通常沒有 Cookie,當(dāng)然也有應(yīng)用到 Web 中的,要講這個(gè)就有點(diǎn)多了,和上述也差不多。

簡(jiǎn)單說,JWT 就是服務(wù)端和客戶端約定好一個(gè)Token格式,最后用密鑰進(jìn)行簽名 base64 編碼后放入請(qǐng)求頭即可,客戶端存放這個(gè)簽名的內(nèi)容通常會(huì)放在 localstorage 中,也有放在 cookie 中的。JWT應(yīng)用了哈希簽名的密碼學(xué)技術(shù),相比 cookie-session 的方式就是服務(wù)端可以不用(在內(nèi)存或者緩存)存放 session,能節(jié)省存儲(chǔ)資源,不過同時(shí)服務(wù)器需要通過計(jì)算來驗(yàn)證也浪費(fèi)了計(jì)算資源。詳細(xì)的說明可以參考:講真,別再使用JWT了!

現(xiàn)有的產(chǎn)品為了更安全還需要考慮 XSS 攻擊,這個(gè)就是有些惡意腳本或者插件不存在跨域問題,所以能獲取到 cookie 和 localstorage 的值。

很安全的方式就是把 XSRF Token 加入到 JWT 中,并且把 JWT 存放在設(shè)置 httpOnly 的 cookie 中,然后多帶帶把 XSRF Token 設(shè)置在 httpOnly=false 的 cookie 中,前端請(qǐng)求時(shí),需要獲取 XSRF Token 并放入請(qǐng)求頭(RequestHeader)。服務(wù)器端可以直接驗(yàn)證JWT中XSRF的值和XSRF的值即可。因?yàn)橛昧斯C荑€簽名的技術(shù),這樣就可以防止篡改內(nèi)容。

這樣的安全防護(hù)就能抵御所有的 XSRF 攻擊了。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/91893.html

相關(guān)文章

  • 說說 XSRF 防范

    摘要:應(yīng)用了哈希簽名的密碼學(xué)技術(shù),相比的方式就是服務(wù)端可以不用在內(nèi)存或者緩存存放,能節(jié)省存儲(chǔ)資源,不過同時(shí)服務(wù)器需要通過計(jì)算來驗(yàn)證也浪費(fèi)了計(jì)算資源。因?yàn)橛昧斯C荑€簽名的技術(shù),這樣就可以防止篡改內(nèi)容。這樣的安全防護(hù)就能抵御所有的攻擊了。 showImg(https://segmentfault.com/img/remote/1460000011232250); 這是我在知乎的一個(gè)回答。原提問...

    時(shí)飛 評(píng)論0 收藏0
  • Python:Tornado 第二章:實(shí)戰(zhàn)演練:開發(fā)Tornado網(wǎng)站:第九節(jié):防止跨站攻擊

    摘要:上一篇文章第二章實(shí)戰(zhàn)演練開發(fā)網(wǎng)站第八節(jié)用戶身份認(rèn)證下一篇文章第三章概念及應(yīng)用第一節(jié)概念跨站請(qǐng)求偽造,或是一種對(duì)網(wǎng)站的惡意利用。其中是存在漏洞的網(wǎng)站,而是存在攻擊行為的惡意網(wǎng)站。 上一篇文章:Python:Tornado 第二章:實(shí)戰(zhàn)演練:開發(fā)Tornado網(wǎng)站:第八節(jié):用戶身份認(rèn)證下一篇文章:Python:Tornado 第三章:HTML5 WebSocket概念及應(yīng)用:第一節(jié):Web...

    Zoom 評(píng)論0 收藏0
  • [面試專題]一線互聯(lián)網(wǎng)大廠面試總結(jié)

    摘要:道阻且長(zhǎng)啊前端面試總結(jié)前端面試筆試面試騰訊一面瀏覽器工作原理瀏覽器的主要組件包括用戶界面包括地址欄后退前進(jìn)按鈕書簽?zāi)夸洖g覽器引擎用來查詢及操作渲染引擎的接口渲染引擎渲染界面和是基于兩種渲染引擎構(gòu)建的,使用自主研發(fā)的渲染引擎,和都使用網(wǎng)絡(luò)用來 道阻且長(zhǎng)啊TAT(前端面試總結(jié)) 前端 面試 筆試 面試 騰訊一面 1.瀏覽器工作原理 瀏覽器的主要組件包括: 用戶界面- 包括地址欄、后退/前...

    lemanli 評(píng)論0 收藏0
  • [面試專題]一線互聯(lián)網(wǎng)大廠面試總結(jié)

    摘要:道阻且長(zhǎng)啊前端面試總結(jié)前端面試筆試面試騰訊一面瀏覽器工作原理瀏覽器的主要組件包括用戶界面包括地址欄后退前進(jìn)按鈕書簽?zāi)夸洖g覽器引擎用來查詢及操作渲染引擎的接口渲染引擎渲染界面和是基于兩種渲染引擎構(gòu)建的,使用自主研發(fā)的渲染引擎,和都使用網(wǎng)絡(luò)用來 道阻且長(zhǎng)啊TAT(前端面試總結(jié)) 前端 面試 筆試 面試 騰訊一面 1.瀏覽器工作原理 瀏覽器的主要組件包括: 用戶界面- 包括地址欄、后退/前...

    xfee 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<