這篇文章帶給大家的內容是關於Python中Tornado防止跨站攻擊的方法介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
跨站請求偽造(Cross-site request forgery,CSRF 或XSRF)是對網站的惡意利用。透過CSRF,攻擊者可以冒用使用者的身份,在使用者不知情的情況下執行惡意操作。
1、CSRF攻擊原理
下圖展示了CSRF的基本原理。其中Site1是存在CSRF漏洞的網站,而SIte2是存在攻擊行為的惡意網站。
上圖內容解析如下:
用戶首先造訪了存在CSRF漏洞網站Site1,成功登陸並取得了Cookie,此後,所有該用戶對Site1的訪問均會攜帶Site1的Cookie,因此被Site1認為是有效操作。
此時使用者又造訪了帶有攻擊行為的網站Site2,而Site2的返回頁面中帶有一個訪問Site1進行惡意操作的連接,但卻偽裝成了合法內容,例如下面的超鏈接看起來是一個抽獎信息,實際上卻是想Site1站點提交提款請求
<a> 三百万元抽奖,免费拿 </a>
2、用Tornado防範CSRF攻擊
為了防範CSRF攻擊,要求每個請求包含一個參數值作為令牌的匹配存儲在Cookie中的對應值。 Tornado應用程式可以透過一個Cookie頭和一個隱藏的HTML表單元素向頁面提供令牌。這樣,當一個合法頁面的表單被提交時,它將包括表單值和已儲存的Cookie。如果兩者匹配,則Tornado應用程式認可請求有效。 開啟Tornado的CSRF防範功能需要兩個步驟。 【1】在實例化tornado.web.Application時傳入xsrf_cookies=True參數,即: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)
以上是Python中Tornado防止跨站攻擊的方法介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!