2
我想阻止XSS,因此我使用HTMLUtility.HtmlEncode
在將所有數據顯示在ASPNET TextBox中之前對其進行編碼。但我沒有顯示適當的字符&,我看到& amp;。C#ASP.NET textbox double HTMLEncode and Preventing XSS
我應該怎麼做才能解決它?
謝謝!
我想阻止XSS,因此我使用HTMLUtility.HtmlEncode
在將所有數據顯示在ASPNET TextBox中之前對其進行編碼。但我沒有顯示適當的字符&,我看到& amp;。C#ASP.NET textbox double HTMLEncode and Preventing XSS
我應該怎麼做才能解決它?
謝謝!
從微軟的How To: Prevent Cross-Site Scripting in ASP.NET
過濾用戶輸入兩者
如果您有需要通過某種富文本輸入域的接受範圍內的HTML元素,爲 例如網頁,您必須禁用 頁面的ASP.NET請求驗證。如果您有多個頁面 這樣做,請創建一個篩選器,只允許您要接受的HTML元素。通常的做法是將格式限制爲 安全的HTML元素,如bold()和italic()。
要放心地讓有限的HTML輸入
Disable ASP.NET request validation by the adding the ValidateRequest="false" attribute to the @ Page directive. Encode the string input with the HtmlEncode method. **Use a StringBuilder and call its Replace method to selectively remove the encoding on the HTML elements that you want to permit.**
在此基礎上,它似乎最好的做法是將搜索和替換&放大器;與&。看起來不是很優雅,但這是從MSDN直接。
是否替換爲&?因爲替換&與&不會做太多... –
是的。。編輯後,它保存了正確的文本,所以我只是修復它。我不知道它是放大器,還是放大器。 –