0
我目前正在解決我的網站上一個主要的永久性XSS漏洞。要做到這一點,我呼籲:HTML呈現轉義字符
this.Title = System.Security.SecurityElement.Escape(this.Title);
在我服用的值,適當逃脫所有需要的字符轉義(<,>,&等)。當我去我的頁面顯示的其他地方這個標題我的問題出現了:
<p> @title </p>
該款顯示器正是因爲它出現的字符串,如「& LT; & GT;等等」。
爲了解決這個問題,我注意到,如果我叫:
<p> @html.raw(title) </p>
這些值是正確顯示頁面(<,>等)上。但我擔心這仍然會確保漏洞。將html正確呈現在頁面上的最佳方法是什麼?我做錯了什麼?或者我正確使用html.raw()?
你應該不會調用'Escape' - 只要讓Razor自動編碼你的輸出即可。但是如果我們假定應該使用'Escape',那麼是的,您正確使用'Raw'。 – Jon
[html/XSS轉義輸入vs輸出]可能重複(http://stackoverflow.com/questions/11253532/html-xss-escape-on-input-vs-output) – user1777136
只要輸出正確的HTML編碼沒有風險< >等 – geedubb