Flask 控制自轉(zhuǎn)義

2021-08-10 17:33 更新

自動轉(zhuǎn)義的概念是自動轉(zhuǎn)義特殊字符。 HTML (或 XML ,因此也有 XHTML )意義下 的特殊字符是 &> , <" 以及 ' 。因為這些字符在 文檔中表示它們特定的含義,如果你想在文本中使用它們,應(yīng)該把它們替換成相應(yīng) 的“實體”。不這么做不僅會導(dǎo)致用戶疲于在文本中使用這些字符,也會導(dǎo)致安全問題。 (見 跨站腳本攻擊(XSS)

雖然你有時會需要在模板中禁用自動轉(zhuǎn)義,比如在頁面中顯式地插入 HTML , 可以是一個來自于 markdown 到 HTML 轉(zhuǎn)換器的安全輸出。

我們有三種可行的解決方案:

  • 在傳遞到模板之前,用 Markup 對象封裝 HTML字符串。一般推薦這個方法。
  • 在模板中,使用 |safe 過濾器顯式地標(biāo)記一個字符串為安全的 HTML ( {{ myvariable|safe }} )。
  • 臨時地完全禁用自動轉(zhuǎn)義系統(tǒng)。

在模板中禁用自動轉(zhuǎn)義系統(tǒng),可以使用 {%autoescape %} 塊:

{% autoescape false %}
    <p>autoescaping is disabled here
    <p>{{ will_not_be_escaped }}
{% endautoescape %}

無論何時,都請務(wù)必格外小心這里的變量。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號