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

資訊專欄INFORMATION COLUMN

Python:Tornado 第二章:實(shí)戰(zhàn)演練:開發(fā)Tornado網(wǎng)站:第九節(jié):防止跨站攻擊

Zoom / 1079人閱讀

摘要:上一篇文章第二章實(shí)戰(zhàn)演練開發(fā)網(wǎng)站第八節(jié)用戶身份認(rèn)證下一篇文章第三章概念及應(yīng)用第一節(jié)概念跨站請求偽造,或是一種對網(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é):WebSocket概念

跨站請求偽造(Cross-site request forgery,CSRF 或XSRF)是一種對網(wǎng)站的惡意利用。通過CSRF,攻擊者可以冒用用戶的身份,在用戶不知情的情況下執(zhí)行惡意操作。

1、CSRF攻擊原理

下圖展示了CSRF的基本原理。其中Site1是存在CSRF漏洞的網(wǎng)站,而SIte2是存在攻擊行為的惡意網(wǎng)站。


上圖內(nèi)容解析如下:

用戶首先訪問了存在CSRF漏洞網(wǎng)站Site1,成功登陸并獲取了Cookie,此后,所有該用戶對Site1的訪問均會攜帶Site1的Cookie,因此被Site1認(rèn)為是有效操作。

此時用戶又訪問了帶有攻擊行為的站點(diǎn)Site2,而Site2的返回頁面中帶有一個訪問Site1進(jìn)行惡意操作的連接,但卻偽裝成了合法內(nèi)容,比如下面的超鏈接看上去是一個抽獎信息,實(shí)際上卻是想Site1站點(diǎn)提交提款請求


三百萬元抽獎,免費(fèi)拿

用戶一旦點(diǎn)擊惡意鏈接,就在不知情的情況下向Site1站點(diǎn)發(fā)送了請求。因?yàn)橹坝脩粼赟ite1進(jìn)行過登陸且尚未退出,所以Site1在收到用戶的請求和附帶的Cookie時將被認(rèn)為該請求是用戶發(fā)送的正常請求。此時,惡意站點(diǎn)的目的也已經(jīng)達(dá)到。

2、用Tornado防范CSRF攻擊

為了防范CSRF攻擊,要求每個請求包括一個參數(shù)值作為令牌的匹配存儲在Cookie中的對應(yīng)值。

Tornado應(yīng)用可以通過一個Cookie頭和一個隱藏的HTML表單元素向頁面提供令牌。這樣,當(dāng)一個合法頁面的表單被提交時,它將包括表單值和已存儲的Cookie。如果兩者匹配,則Tornado應(yīng)用認(rèn)可請求有效。

開啟Tornado的CSRF防范功能需要兩個步驟。

【1】在實(shí)例化tornado.web.Application時傳入xsrf_cookies=True參數(shù),即:
application=tornado.web.Application([
(r"/",MainHandler),
],
cookie_secret="DONT_LEAK_SECRET",
xsrf_cookies=True,
)

或者:

settings={
"cookie_secret":"DONT_LEAK_SECRET",
"xsrf_cookies":True
}

application=tornado.web.Application([
(r"/",MainHandler),
],**settings)
當(dāng)tornado.web.Application需要初始化的參數(shù)過多時,可以像本例一樣通過setting字典的形式傳入命名參數(shù)
【2】在每個具有HTML表達(dá)的模板文件中,為所有表單添加xsrf_form_html()函數(shù)標(biāo)簽,比如:
{% module xsrf_form_html() %}

這里的{% module xsrf_form_html() %}起到了為表單添加隱藏元素以防止跨站請求的作用。

Tornado的安全Cookie支持和XSRF防范框架減輕了應(yīng)用開發(fā)者的很多負(fù)擔(dān),沒有他們,開發(fā)者需要思考很多防范的細(xì)節(jié)措施,因此Tornado內(nèi)建的安全功能也非常有用。

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

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

相關(guān)文章

  • PythonTornado 二章實(shí)戰(zhàn)演練開發(fā)Tornado網(wǎng)站:第八節(jié):用戶身份認(rèn)證

    摘要:上一篇文章第二章實(shí)戰(zhàn)演練開發(fā)網(wǎng)站第七節(jié)安全機(jī)制下一篇文章第二章實(shí)戰(zhàn)演練開發(fā)網(wǎng)站第九節(jié)防止跨站攻擊在的類中有一個屬性用于保存當(dāng)前請求的用戶名。實(shí)例使用屬性及方法來實(shí)現(xiàn)用戶身份控制。該地址被用于裝飾器在發(fā)現(xiàn)用戶尚未驗(yàn)證時重定向到一個。 上一篇文章:Python:Tornado 第二章:實(shí)戰(zhàn)演練:開發(fā)Tornado網(wǎng)站:第七節(jié):安全Cookie機(jī)制下一篇文章:Python:Tornado 第...

    Kahn 評論0 收藏0
  • PythonTornado 第三章:HTML5 WebSocket概念及應(yīng)用:第一節(jié):WebSoc

    摘要:上一篇文章第二章實(shí)戰(zhàn)演練開發(fā)網(wǎng)站第九節(jié)防止跨站攻擊下一篇文章第三章概念及應(yīng)用第二節(jié)服務(wù)端編程的異步特性使得其非常適合服務(wù)器的高并發(fā)處理,客戶端與服務(wù)器的持久連接應(yīng)用框架就是高并發(fā)的典型應(yīng)用。因?yàn)槭堑臉?biāo)準(zhǔn)協(xié)議,所以不受企業(yè)防火墻的攔截。 上一篇文章:Python:Tornado 第二章:實(shí)戰(zhàn)演練:開發(fā)Tornado網(wǎng)站:第九節(jié):防止跨站攻擊下一篇文章:Python:Tornado 第三章...

    mo0n1andin 評論0 收藏0
  • PythonTornado 二章實(shí)戰(zhàn)演練開發(fā)Tornado網(wǎng)站:第六節(jié):異步與協(xié)程化

    摘要:上一篇文章第二章實(shí)戰(zhàn)演練開發(fā)網(wǎng)站第五節(jié)輸出相應(yīng)函數(shù)下一篇文章第二章實(shí)戰(zhàn)演練開發(fā)網(wǎng)站第七節(jié)安全機(jī)制有兩種方式可改變同步的處理流程異步化針對的處理函數(shù)使用修飾器,將默認(rèn)的同步機(jī)制改為異步機(jī)制。使用異步對象處理耗時操作,比如本例的。 上一篇文章:Python:Tornado 第二章:實(shí)戰(zhàn)演練:開發(fā)Tornado網(wǎng)站:第五節(jié):RequestHandler:輸出相應(yīng)函數(shù)下一篇文章:Python:...

    cod7ce 評論0 收藏0
  • PythonTornado 二章實(shí)戰(zhàn)演練開發(fā)Tornado網(wǎng)站第二節(jié):路由解析

    摘要:上一篇文章第二章實(shí)戰(zhàn)演練開發(fā)網(wǎng)站第一節(jié)網(wǎng)站結(jié)構(gòu)下一篇文章第二章實(shí)戰(zhàn)演練開發(fā)網(wǎng)站第三節(jié)接入點(diǎn)函數(shù)向?qū)ο髠鬟f的第個參數(shù)路由映射列表的配置方式與類型,用正則字符串進(jìn)行路由匹配。實(shí)例參數(shù)路徑在瀏覽器輸入頁面輸出其中的是正在表達(dá)式。 上一篇文章:Python:Tornado 第二章:實(shí)戰(zhàn)演練:開發(fā)Tornado網(wǎng)站:第一節(jié):網(wǎng)站結(jié)構(gòu):HelloWorld下一篇文章:Python:Tornado ...

    cppprimer 評論0 收藏0
  • PythonTornado 二章實(shí)戰(zhàn)演練開發(fā)Tornado網(wǎng)站:第七節(jié):安全Cookie機(jī)制

    摘要:上一篇文章第二章實(shí)戰(zhàn)演練開發(fā)網(wǎng)站第六節(jié)異步與協(xié)程化下一篇文章第二章實(shí)戰(zhàn)演練開發(fā)網(wǎng)站第八節(jié)用戶身份認(rèn)證是很多網(wǎng)站為了辨別用戶的身份而存儲在用戶本地終端的數(shù)據(jù),在中使用可以方便地對進(jìn)行讀寫。 上一篇文章:Python:Tornado 第二章:實(shí)戰(zhàn)演練:開發(fā)Tornado網(wǎng)站:第六節(jié):異步與協(xié)程化下一篇文章:Python:Tornado 第二章:實(shí)戰(zhàn)演練:開發(fā)Tornado網(wǎng)站:第八節(jié):用戶...

    dmlllll 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<