簡體   English   中英

ASP.NET控件中的安全HTML

[英]Safe HTML in ASP.NET Controls

我相信這是一個常見問題......

我希望用戶能夠輸入和格式化描述。

現在我有一個多行文本框,他們可以輸入純文本。 如果他們可以做一些html格式化會很好。 這是我要處理的事情嗎? 解析輸入並僅驗證是否存在“安全”標簽,如<ul><li><b>等?

我將此描述保存在SQL數據庫中。 為了正確顯示這個HTML,我需要在頁面上使用文字並將其轉儲到適當的區域,還是可以更好地控制我正在做的事情?

此外,是否有像SO上的免費控件用於用戶輸入/次要編輯?

此外,是否有像SO上的免費控件用於用戶輸入/次要編輯?

Stackoverflow使用WMD控件和markdown,如下所述:

http://blog.stackoverflow.com/2008/09/what-was-stack-overflow-built-with/

看看AntiXSS庫。 當前版本(3.1)有一個名為GetSafeHtmlFragment的方法,可用於執行您正在討論的解析方式。

Literal可能是輸出此HTML的正確控件,因為Literal只輸出放入其中的內容並讓瀏覽器呈現任何HTML。 標簽將輸出包括標簽在內的所有標記。

AJax Control Toolkit有一個文本編輯器

您需要檢查輸入的標簽以避免跨側腳本攻擊等。您可以使用正則表達式檢查任何標簽是否在您擁有的“白名單”上並刪除其他任何標簽。

您可以查看此鏈接以獲取富文本編輯器列表。

除了其他答案之外,您還需要在包含文本框的頁面的@Page指令中設置ValidateRequest =“false”。 這將關閉阻止從文本框發布HTML的標准ASP.NET驗證。 然后,您應該使用自己的驗證例程,例如@PhilPursglove提到的例程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM