ASP.NET MVC中的HTML清理程序可过滤危险的标记,但允许其余部分

vto*_*ola 7 xss asp.net-mvc antixsslibrary wpl asp.net-mvc-3

我知道关于HTML消毒剂的很多问题已经出现在SO中,但是我不知道他们是否做了我想做的事情,因为一些推荐的方法已经超过4年了,所以我有点乱.

我有一个TinyMCE编辑器的页面.当然,这个编辑器将HTML发送到服务器,并期望HTML,所以我创建了一个带有String属性的[AllowHtml]属性实体.它运作良好.

现在,我想确保没有人尝试发送<script>标签,或者<img onerror="">执行JS的任何方式,或者添加指向外部URL的CSS.

目前最好的解决方案是什么?

WPL有HtmlSanitizationLibrary,但我怎么知道哪些标签被认为是"安全的"?

WPL从去年四月开始没有发布任何内容,而且是测试版.所以我想知道这个项目是否有效?

干杯.

Dar*_*rov 3

WPL是事实上的标准。通过它运行字符串,您就可以安全地以未编码的方式打印它:

@Html.Raw(Model.SomePropertyThatWasSanitizedWithWPL)
Run Code Online (Sandbox Code Playgroud)

  • 考虑到 WPL 的生命周期已经结束,它的发展并不安全,而且可能从一开始就不安全。 (3认同)