C#中是否有一個實用程序/函數來清理tinyMCE富文本的源代碼。我想刪除危險標籤,但希望將安全的html標籤列入白名單。如何清理ASP.NET中的MCE輸入?
4
A
回答
4
我不認爲您可以使用C#的內置消毒劑,但這是我在做同樣事情時所做的。我使用了AjaxControlToolkit附帶的HtmlAgilityPackSanitizerProvider。代碼看起來像這樣:
private static AjaxControlToolkit.Sanitizer.HtmlAgilityPackSanitizerProvider sanitizer = new AjaxControlToolkit.Sanitizer.HtmlAgilityPackSanitizerProvider();
private static Dictionary<string, string[]> elementWhitelist = new Dictionary<string, string[]>
{
{"b" , new string[] { "style" }},
{"strong" , new string[] { "style" }},
{"i" , new string[] { "style" }},
{"em" , new string[] { "style" }},
{"u" , new string[] { "style" }},
{"strike" , new string[] { "style" }},
{"sub" , new string[] { "style" }},
{"sup" , new string[] { "style" }},
{"p" , new string[] { "align" }},
{"div" , new string[] { "style", "align" }},
{"ol" , new string[] { }},
{"li" , new string[] { }},
{"ul" , new string[] { }},
{"a" , new string[] { "href" }},
{"font" , new string[] { "style", "face", "size", "color" }},
{"span" , new string[] { "style" }},
{"blockquote" , new string[] { "style", "dir" }},
{"hr" , new string[] { "size", "width", "id" }},
{"img" , new string[] { "src" }},
{"h1" , new string[] { "style" }},
{"h2" , new string[] { "style" }},
{"h3" , new string[] { "style" }},
{"h4" , new string[] { "style" }},
{"h5" , new string[] { "style" }},
{"h6" , new string[] { "style" }}
};
private static Dictionary<string, string[]> attributeWhitelist = new Dictionary<string, string[]>
{
{"style" , new string[] {}},
{"align" , new string[] {}},
{"href" , new string[] {}},
{"face" , new string[] {}},
{"size" , new string[] {}},
{"color" , new string[] {}},
{"dir" , new string[] {}},
{"width" , new string[] {}},
{"id" , new string[] {}},
{"src" , new string[] {}}
};
public string SanitizeHtmlInput(string unsafeStr)
{
return sanitizer.GetSafeHtmlFragment(unsafeStr, elementWhitelist, attributeWhitelist);
}
希望這有助於。
1
清理Html文檔涉及很多棘手的事情。這個包可能有幫助: https://github.com/mganss/HtmlSanitizer 我用它來做我自己的項目。
相關問題
- 1. 微小MCE清理負載
- 2. codeigniter如何清理輸入?
- 3. 如何在wordpress中清理輸入
- 4. 清理輸入中的Joomla
- 5. asp.net web api - 清理輸入字符串
- 6. 如何清理ODBC數據庫輸入?
- 7. 如何使用CsvReader清理CSV輸入?
- 8. Oracle Text:如何清理用戶輸入
- 9. 如何清理JS eval輸入?
- 10. 我如何清理Erlang輸入?
- 11. 如何清理PHP $ _POST []輸入?
- 12. 在asp.net(mvc3)中清理用戶輸入以保證安全
- 13. 如何清理Spork輸出?
- 14. 爲UniData清理輸入
- 15. 梨DB_DataObject和輸入清理
- 16. 如何清理Runtime.exec()中使用的用戶輸入?
- 17. 如何清理貓鼬中的用戶輸入?
- 18. 如何在php中清理簡單的_GET輸入url到mysql
- 19. 如何清理Bash中的用戶輸入
- 20. 如何清除java中的輸入流
- 21. 我是否需要清理ASP.NET MembershipProvider控件的輸入?
- 22. 如何清空輸入流?
- 23. 在laravel中清理用戶輸入
- 24. 在Camping中清理用戶輸入
- 25. 在Codeigniter中清理html輸入
- 26. 在FuelPHP中清理用戶輸入
- 27. 如果輸入有html,則對用戶輸入進行清理
- 28. 如何在bash中清除輸入
- 29. 如何在C++中清除輸入流?
- 30. Hibernate的createCriteria()是否清理輸入?
我不確信attributeWhitelist的工作原理,檢查它沒有實際使用的代碼:http://ajaxcontroltoolkit.codeplex.com/SourceControl/latest#Server/AjaxControlToolkit/Sanitizer/HtmlAgilityPackSanitizerProvider.cs –