gpt4 book ai didi

.net - .NET HTML白名单(反xss/跨站点脚本)

转载 作者:行者123 更新时间:2023-12-04 16:57:02 24 4
gpt4 key购买 nike

我经常遇到这样的情况,即我有一些使用HTML子集的用户输入(tinyMCE的输入)。我需要对XSS攻击有一些服务器端保护,并正在寻找人们使用的经过良好测试的工具。在PHP方面,我看到很多类似HTMLPurifier的库都可以完成这项工作,但是我似乎无法在.NET中找到任何东西。

我基本上是在寻找一个库来过滤标签的白名单,这些标签的属性,并使用“困难”属性(例如a:href和img:src)做正确的事情

我已经在http://refactormycode.com/codes/333-sanitize-html上看到了Jeff Atwood的帖子,但是我不知道它是最新的。它与该站点当前使用的内容完全没有关系吗?而且无论如何,我不确定我是否对尝试正则表达式有效输入的策略感到满意。

这篇博客文章列出了似乎更引人注目的策略:

http://blog.bvsoftware.com/post/2009/01/08/How-to-filter-Html-Input-to-Prevent-Cross-Site-Scripting-but-Still-Allow-Design.aspx

此方法实际上是将HTML解析为DOM,对其进行验证,然后从中重建有效的HTML。如果HTML解析可以明智地处理格式错误的HTML,那就太好了。如果没有的话,没什么大不了的-我可以要求格式正确的HTML,因为用户应该使用tinyMCE编辑器。无论哪种情况,我都在重写我所知道的安全,格式正确的HTML。

问题在于这只是一个描述,而没有指向实际执行该算法的任何库的链接。

是否存在这样的库?如果没有,那么什么是一个好的.NET HTML解析引擎?以及应该使用哪些正则表达式来执行额外的验证a:href,img:src?我在这里还缺少其他重要的东西吗?

我不想在这里重新安装 buggy 。当然,这里有一些常用的库。有任何想法吗?

最佳答案

好吧,如果您想解析,并且担心传入的(x)HTML无效,那么HTML Agility Pack可能是解析时最好的东西。请记住,这不仅是元素,还包括您需要允许的允许元素上的属性(当然,您应该对元素及其属性的允许白名单进行处理,而不是尝试通过黑名单剥离可能令人不快的事物)

还有OWASP AntiSamy Project,这是一个正在进行的工作-他们也有一个test site,您可以尝试XSS

正则表达式可能会给IMO带来太大的风险。

关于.net - .NET HTML白名单(反xss/跨站点脚本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1224049/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com