确保客户端在服务器端提交提交的Html的安全性

时间:2011-08-31 17:48:21

标签: c# asp.net-mvc-3 html-parsing

我有一个MVC 3 Web应用程序项目,在一个页面中我使用NicEdit来允许用户输入格式化文本。

当控制器收到数据时,数据采用html格式...完美。 NicEdit本身不允许脚本标签,也不允许onFoo事件直接输入元素,但一个意图不好的用户可以强制使用中的脚本,这样就不安全了。

  1. 我可以做些什么来确保传入数据的安全性...剥离脚本标签,查找和删除onXyz事件......还有什么?

  2. 此外,最简单的方法是什么?我应该使用HtmlAgilityPack,还是有一个简单的功能可以通过简单的调用完成所有工作。

    注意:只编码整个字符串不是有效的解决方案。我想要的是一种确保Html代码可以安全地在另一个页面中呈现的方法,当有人想要查看提交的内容时。

  3. 谢谢!

1 个答案:

答案 0 :(得分:3)

您可以使用AntiXss库。将删除危险脚本:

string input = ...
string safeOutput = AntiXss.GetSafeHtmlFragment(input);