摘要:上一篇文章第二章實戰演練開發網站第八節用戶身份認證下一篇文章第三章概念及應用第一節概念跨站請求偽造,或是一種對網站的惡意利用。其中是存在漏洞的網站,而是存在攻擊行為的惡意網站。
上一篇文章:Python:Tornado 第二章:實戰演練:開發Tornado網站:第八節:用戶身份認證
下一篇文章:Python:Tornado 第三章:HTML5 WebSocket概念及應用:第一節:WebSocket概念
跨站請求偽造(Cross-site request forgery,CSRF 或XSRF)是一種對網站的惡意利用。通過CSRF,攻擊者可以冒用用戶的身份,在用戶不知情的情況下執行惡意操作。
1、CSRF攻擊原理下圖展示了CSRF的基本原理。其中Site1是存在CSRF漏洞的網站,而SIte2是存在攻擊行為的惡意網站。
上圖內容解析如下:
用戶首先訪問了存在CSRF漏洞網站Site1,成功登陸并獲取了Cookie,此后,所有該用戶對Site1的訪問均會攜帶Site1的Cookie,因此被Site1認為是有效操作。
此時用戶又訪問了帶有攻擊行為的站點Site2,而Site2的返回頁面中帶有一個訪問Site1進行惡意操作的連接,但卻偽裝成了合法內容,比如下面的超鏈接看上去是一個抽獎信息,實際上卻是想Site1站點提交提款請求
三百萬元抽獎,免費拿
用戶一旦點擊惡意鏈接,就在不知情的情況下向Site1站點發送了請求。因為之前用戶在Site1進行過登陸且尚未退出,所以Site1在收到用戶的請求和附帶的Cookie時將被認為該請求是用戶發送的正常請求。此時,惡意站點的目的也已經達到。
2、用Tornado防范CSRF攻擊為了防范CSRF攻擊,要求每個請求包括一個參數值作為令牌的匹配存儲在Cookie中的對應值。
Tornado應用可以通過一個Cookie頭和一個隱藏的HTML表單元素向頁面提供令牌。這樣,當一個合法頁面的表單被提交時,它將包括表單值和已存儲的Cookie。如果兩者匹配,則Tornado應用認可請求有效。
開啟Tornado的CSRF防范功能需要兩個步驟。
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)
當tornado.web.Application需要初始化的參數過多時,可以像本例一樣通過setting字典的形式傳入命名參數
這里的{% module xsrf_form_html() %}起到了為表單添加隱藏元素以防止跨站請求的作用。
Tornado的安全Cookie支持和XSRF防范框架減輕了應用開發者的很多負擔,沒有他們,開發者需要思考很多防范的細節措施,因此Tornado內建的安全功能也非常有用。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/42613.html
摘要:上一篇文章第二章實戰演練開發網站第七節安全機制下一篇文章第二章實戰演練開發網站第九節防止跨站攻擊在的類中有一個屬性用于保存當前請求的用戶名。實例使用屬性及方法來實現用戶身份控制。該地址被用于裝飾器在發現用戶尚未驗證時重定向到一個。 上一篇文章:Python:Tornado 第二章:實戰演練:開發Tornado網站:第七節:安全Cookie機制下一篇文章:Python:Tornado 第...
摘要:上一篇文章第二章實戰演練開發網站第九節防止跨站攻擊下一篇文章第三章概念及應用第二節服務端編程的異步特性使得其非常適合服務器的高并發處理,客戶端與服務器的持久連接應用框架就是高并發的典型應用。因為是的標準協議,所以不受企業防火墻的攔截。 上一篇文章:Python:Tornado 第二章:實戰演練:開發Tornado網站:第九節:防止跨站攻擊下一篇文章:Python:Tornado 第三章...
摘要:上一篇文章第二章實戰演練開發網站第五節輸出相應函數下一篇文章第二章實戰演練開發網站第七節安全機制有兩種方式可改變同步的處理流程異步化針對的處理函數使用修飾器,將默認的同步機制改為異步機制。使用異步對象處理耗時操作,比如本例的。 上一篇文章:Python:Tornado 第二章:實戰演練:開發Tornado網站:第五節:RequestHandler:輸出相應函數下一篇文章:Python:...
摘要:上一篇文章第二章實戰演練開發網站第一節網站結構下一篇文章第二章實戰演練開發網站第三節接入點函數向對象傳遞的第個參數路由映射列表的配置方式與類型,用正則字符串進行路由匹配。實例參數路徑在瀏覽器輸入頁面輸出其中的是正在表達式。 上一篇文章:Python:Tornado 第二章:實戰演練:開發Tornado網站:第一節:網站結構:HelloWorld下一篇文章:Python:Tornado ...
摘要:上一篇文章第二章實戰演練開發網站第六節異步與協程化下一篇文章第二章實戰演練開發網站第八節用戶身份認證是很多網站為了辨別用戶的身份而存儲在用戶本地終端的數據,在中使用可以方便地對進行讀寫。 上一篇文章:Python:Tornado 第二章:實戰演練:開發Tornado網站:第六節:異步與協程化下一篇文章:Python:Tornado 第二章:實戰演練:開發Tornado網站:第八節:用戶...
閱讀 2618·2021-11-12 10:36
閱讀 2257·2021-08-23 09:47
閱讀 1675·2019-08-30 15:44
閱讀 1400·2019-08-30 14:10
閱讀 2241·2019-08-29 16:52
閱讀 2333·2019-08-29 16:40
閱讀 1582·2019-08-29 16:17
閱讀 2407·2019-08-26 13:21