W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
跨站腳本攻擊的概念是在一個網(wǎng)站的上下文中注入任意的 HTML (以及附帶的 JavaScript )。開發(fā)者需要正確地轉(zhuǎn)義文本,使其不能包含任意 HTML 標(biāo)簽來避免 這種攻擊。更多的信息請閱讀維基百科上關(guān)于 Cross-Site Scripting 的文章。
Flask 配置 Jinja2 自動轉(zhuǎn)義所有值,除非顯式地指明不轉(zhuǎn)義。這就排除了模板導(dǎo) 致的所有 XSS 問題,但是你仍需要在其它的地方小心:
另一件非常重要的事情是未用引號包裹的屬性。雖然 Jinja2 可以通過轉(zhuǎn)義 HTML 來保護你免受 XSS 問題,仍有一種情況,它不能保護你: 屬性注入的 XSS 。為了 應(yīng)對這種攻擊媒介,確保當(dāng)在屬性中使用 Jinja 表達式時,始終用單引號或雙引號 包裹屬性:
<a href="{{ href }}">the text</a>
為什么這是必要的?因為如果你不這么做,攻擊者可以容易地注入自制的 JavaScript 處理器。譬如一個攻擊者可以注入這段 HTML+JavaScript:
onmouseover=alert(document.cookie)
當(dāng)用戶鼠標(biāo)經(jīng)過這個鏈接, 會在警告窗口里把 cookie 顯示給用戶。一個精明的 攻擊者可能也會執(zhí)行其它的 JavaScript 代碼,而不是把 cookie 顯示給用戶。 同 CSS 注入聯(lián)系在一起,攻擊者甚至使得元素填滿整個頁面,這樣用戶鼠標(biāo)在頁面 上的任何地方都會觸發(fā)攻擊。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: