flask的安全注意事項,如何防范XSS、CSRF、JSON安全


參考官方文檔:http://docs.jinkan.org/docs/flask/security.html

1、xss

Flask 配置 Jinja2 自動轉義所有值,除非顯式地指明不轉義。這就排除了模板導致的所有 XSS 問題,但是你仍需要在其它的地方小心:

  • 生成 HTML 而不使用 Jinja2
  • 在用戶提交的數據上調用了 Markup
  • 發送上傳的 HTML 文件,永遠不要這么做,使用 Content-Disposition: attachment標頭來避免這個問題
  • 發送上傳的文本文件。一些瀏覽器使用基於開頭幾個字節的 content-type 猜測,所以用戶可能欺騙瀏覽器執行 HTML

另一件非常重要的事情是未用引號包裹的屬性。雖然 Jinja2 可以通過轉義 HTML 來保護你免受 XSS 問題,仍有一種情況,它不能保護你: 屬性注入的 XSS 。為了應對這種攻擊媒介,確保當在屬性中使用 Jinja 表達式時,始終用單引號或雙引號包裹屬性:

<a href="{{ href }}">the text</a> 

為什么這是必要的?因為如果你不這么做,攻擊者可以容易地注入自制的 JavaScript 處理器。譬如一個攻擊者可以注入這段 HTML+JavaScript:

onmouseover=alert(document.cookie)

當用戶鼠標經過這個鏈接, 會在警告窗口里把 cookie 顯示給用戶。一個精明的攻擊者可能也會執行其它的 JavaScript 代碼,而不是把 cookie 顯示給用戶。 同 CSS 注入聯系在一起,攻擊者甚至使得元素填滿整個頁面,這樣用戶鼠標在頁面上的任何地方都會觸發攻擊。

2、csrf

flask是沒有抵抗csrf能力的,建議重要操作都要有一個一次性令牌


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM