我只是跑过一个问题的答案提示的AntiXss库,以避免交叉网站脚本。听起来很有意思,阅读 msdn的博客, 它似乎只是提供一个HtmlEncode()方法。但我已经使用HttpUtility.HtmlEncode().

为什么我会想到使用AntiXss.HtmlEncode过HttpUtility.HtmlEncode?

事实上,我不是第一个问这个问题。而且,事实上,谷歌变成了 一些 答案, ,主要是

  • 白名单,而不是黑色名单的方法
  • 一个0.1毫性能的改进

嗯,那是好的,但它意味着什么为我?我不在乎那么多的有关绩效的0.1毫我真的不觉得像下载并加入另一个图书馆依赖于功能,我已经有了。

是否有例子的情况下AntiXss的实施将防止攻击,HttpUtility执行不?

如果我继续使用HttpUtility执行,我有危险吗?怎么样 这个错误'?

有帮助吗?

解决方案

我没有回答具体问题,但我想指出,白名单vs黑名单的做法,不只是"好的"。这是重要的。非常重要的。当涉及到安全,每一个小小的事情是重要的。记住,用交叉网站和脚本 截网站的请求伪造 即使你的网站并不表示敏感的数据,黑客可能会传染给你的网站通过注入javascript和使用它得到敏感数据从其他网站。所以这样做的权利是至关重要的。

异准则,指定使用一个白色列表的方法.PCI遵守的准则也规定这一编码的标准(因为他们指tot他异指导方针)。

此外,新版本的AntiXss库有一个很好的新功能:.GetSafeHtmlFragment()这是很好的为这些情况下,你想商店HTML在数据库,并让它向用户显示为HTML。

此外,作为对"错误",如果你的编码正确地和以下所有安全指导方针,你正在使用的参数化存储程序,因此单一的报价将被正确地处理,如果你不是编码正常,没有现成的图书馆是要保护你充分。AntiXss库是一种工具来使用,不能代替用于知识。依靠图书馆做是正确的,你会期待一个真正的好画笔转出良好的绘画没有一个很好的艺术家。

编辑-增加

作为要求在这个问题,一个例子反xss会保护你和HttpUtility不会:

HttpUtility.HtmlEncode和服务器。HtmlEncode不防止跨站脚本

这是根据提交人称,虽然。我没有测试过它的个人。


它听起来像是你在你的安全指南,因此,这可能不是东西,我需要告诉你的,但仅在情况较少经验丰富的开发人员就在那里阅读这个,我说的原因,白名单办法是至关重要的是这样的。

现在,今天,HttpUtility.HtmlEncode可以成功地块的每一次攻击在那里,只是通过消除/编码 <> 加上一些其他的"已知的潜在不安全"的字符,但有人总是试图想的新方法打破。只允许已知的安全(白名单)的内容是一个容易得多试图想的每一个可能的不安全点的输入一个攻击者可能在你扔(黑色列表方法)。

其他提示

在你为什么使用一个比其他考虑,AntiXSS库获得释放更多的ASP.NET 框架,因为正如大卫*斯特拉顿说,有人总是试图想的新方法打破,当有人做出一个AntiXSS库是更有可能得到一个更新版本,以抵御。

以下是之间的差异 Microsoft.Security.Application.AntiXss.HtmlEncodeSystem.Web.HttpUtility.HtmlEncode 方法:

  1. 反XSS使用白-清单的技术,有时称作原则包含的内容,以提供保护,防止跨站Scripting(XSS)攻击。这种方法首先确定一个有效的或可允许设置的字符,并且编码以外的任何这种设置(无效字或潜在的攻击). System.Web.HttpUtility.HtmlEncode 和其他编码方法在这名字空间的使用原则的除外情况和编码只有某些人物指定为潜在的危险,例如 <,>,&并'字。

  2. 反XSS库的名单的白色(或)字支持了十多种语言(希腊语和科普特西里尔文字母的补充,亚美尼亚语、希伯来语、阿拉伯叙利亚语、阿拉伯补充,塔纳文,关于佳密德和更多)

  3. 反XSS库已经专门设计的减轻XSS而攻击 HttpUtility 编码方法的创建是为了确保ASP.NET 输出不会破坏HTML。

  4. 业绩的平均水平之间的三角洲 AntiXss.HtmlEncode()HttpUtility.HtmlEncode() 是+0.1毫秒每笔交易。

  5. 反XSS3.0版本提供了一个测试工具,它使开发者可以运行的XSS验证和性能测试。

最XSS漏洞(任何类型的脆弱性,实际上)是基于纯粹的事实是,现有的安全没有"希望"某些事情发生。白名单只做法是更加易于处理这些情况下的默认。

我们使用白名单办法,对Microsoft的Windows Live网站。我敢肯定,有任何数量的安全的攻击,我们没有想到的呢,所以我更舒服的偏执做法。我怀疑在有些情况下,其中黑色列暴露的脆弱性,白名单没有,但我不能告诉你细节。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top