我有一个MVC 3 Web应用程序项目,在一个页面中我使用NicEdit来允许用户输入格式化文本。
当控制器收到数据时,数据采用html格式...完美。 NicEdit本身不允许脚本标签,也不允许onFoo事件直接输入元素,但一个意图不好的用户可以强制使用中的脚本,这样就不安全了。
我可以做些什么来确保传入数据的安全性...剥离脚本标签,查找和删除onXyz事件......还有什么?
此外,最简单的方法是什么?我应该使用HtmlAgilityPack,还是有一个简单的功能可以通过简单的调用完成所有工作。
注意:只编码整个字符串不是有效的解决方案。我想要的是一种确保Html代码可以安全地在另一个页面中呈现的方法,当有人想要查看提交的内容时。
谢谢!
答案 0 :(得分:3)
您可以使用AntiXss库。将删除危险脚本:
string input = ...
string safeOutput = AntiXss.GetSafeHtmlFragment(input);