- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我的公司要求我们的 ASP.NET 代码在发布代码之前通过 Fortify 360 扫描。我们到处都使用 AntiXSS 来清理 HTML 输出。我们还验证输入。不幸的是,他们最近更改了 Fortify 使用的"template",现在它将我们所有的 AntiXSS 调用标记为“验证不佳”。这些调用正在执行类似 AntiXSS.HTMLEncode(sEmailAddress) 的操作。
有人确切地知道什么可以满足 Fortify 吗?它标记的很多内容都是输出,其中值来自数据库而不是来自用户,所以如果 HTMLEncode 不够安全,我们不知道是什么!
最佳答案
我是 Fortify 安全研究小组的成员,对于这个问题给您造成的困惑,我深表歉意。我们在提出此类问题方面做得不是很好。我认为部分问题在于类别名称——我们并不是要说验证机制有任何问题,只是我们无法判断它是否适合这种情况。
换句话说,我们不知道您的特定上下文的正确验证是什么。出于这个原因,我们不承认任何 HTML 编码函数可以开箱即用地验证 XSS,即使是 Microsoft 的 AntiXSS 库中的函数。
至于什么是正确的解决方案,如果您使用 HtmlEncode 将用户名输出到 HTML 页面的正文,那么您的原始代码就可以了。如果在 URL 中使用编码的用户名,它可能容易受到 XSS 攻击。在 Fortify,当我们在自己的代码中发现类似问题时,如果验证与上下文匹配,我们将其标记为“不是问题”。
我们意识到围绕这些问题的问题不断调整我们的规则,使它们更加精确和易于理解。我们每三个月发布一次新规则,并希望在即将发布的版本中进行一些更改。对于第 4 季度,我们计划将问题分为验证不足(用于黑名单编码和其他弱验证方案)和上下文敏感验证(您看到的问题类型)。如果我们能提供更多帮助,请告诉我们。
(OWASP 解释为什么 HTML 编码不能解决所有问题的链接: http://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet#Why_Can.27t_I_Just_HTML_Entity_Encode_Untrusted_Data.3F )
关于c# - 强化和 AntiXSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3256425/
谁能告诉我这两者的区别?AntiXss.HtmlEncode() 对比 AntiXss.GetSafeHtmlFragment() 最佳答案 HtmlEcode 实际上编码标签: AntiXss.Ht
使用 AntiXss.HtmlEncode 清理我的字段后,有没有办法删除所有 html 元素,因为它们仍然在显示中显示为文字? 最佳答案 不,没有。如果您想删除 HTML 元素,然后对结果进行 Ht
我的公司要求我们的 ASP.NET 代码在发布代码之前通过 Fortify 360 扫描。我们到处都使用 AntiXSS 来清理 HTML 输出。我们还验证输入。不幸的是,他们最近更改了 Fortif
我想在我的网络应用程序中使用 AntiXss 库函数。我有一个 Web 应用程序,其中包含代码隐藏的 Jquery 代码的 asp.net 页面。整个 asp.net 页面通过 Jquery js 页
HttpUtility 类提供编码和解码。但是,当我使用 MS AntiXSS 3.1 库时,我有一套仅用于编码的方法,这是否意味着可以避免解码? 例如 在应用 AntiXSS 之前: lblName
当您可以使用HttpUtility.HtmlEncode简单地对数据进行编码时,我们为什么要使用AntiXss.HtmlEncode? 为什么白名单方法比黑名单方法更好? 另外,在Anti XSS库中
我一直在使用Microsoft's AntiXss Library并想知道其 JavaScriptEncode 方法是否有充分的理由将结果用单引号括起来?这种行为似乎不合常规。 最佳答案 实际上新的3
我有一个简单的论坛应用程序,当有人发布任何内容时,我会: post.Content = Sanitizer.GetSafeHtml(post.Content); 现在,我不确定我是否做错了什么,或者发
我看到网络保护库 (WPL) 带有 2 个不同的选项: 安全运行时引擎 (SRE) 反 XSS 库 第一个看起来很棒,因为不需要代码,它是一个 HTTPModule。第二种需要在代码中手动添加转义逻辑
在我看来,仅使用 html 敏捷包就可以防止 xss(解析然后获取内部文本)。用了hap再用antixss会不会重复? 谢谢,杆。 最佳答案 苹果和橙子。 HTML Agility Pack 是一种解
我想使用新版本的AntiXss来自微软的图书馆。我从 Nuget 包下载了它,但我不确定我应该从这里去哪里。该库没有提供文档,我在网上找到的所有文章都是旧的。由于发生了很多变化,几乎所有我想使用的东西
为什么未使用 Microsoft AntiXSS 清理未关闭的 html 标记? string untrustedHtml = ""; string trustedHtml = AntiXSS.San
这是一个以前被问过的问题,但我没有找到我正在寻找的信息,或者我可能只是错过了这一点,所以请耐心等待。如果我问错了,我总是可以调整我的问题。 例如,如果我有一个 POST 端点,它使用具有 2 个属性(
所以我花了将近 30 分钟寻找 AntiXSS 4.2.1 说明(Microsoft 文档已经过时)并且找不到任何.. 我发现在旧版本中,他们使用,但那已经过时了。 AntiXss.HtmlEncod
Microsoft Web Protection Library (AntiXSS)已达到生命的尽头。该页面指出“在 .NET 4.0 中,框架中包含一个版本的 AntiXSS,可以通过配置启用。在
我不知道我这样做是否正确。 我第一次构建一些东西来防止对页面的攻击。我将从底部开始: 我有属性(property): public string Description {get;set;} 用户可以
我正在使用 AntiXssLibrary 4.0 但它没有转义\x3c。我的错误是什么? 我已根据此处 http://haacked.com/archive/2010/04/06/using-anti
我刚开始使用 AntiXSS (4.3.0),主要是为了使用 @Encoder.JavaScriptEncode如所述here . 我从 Nuget 安装了 AntiXSS,然后添加了 encoder
现在我正在学习网络安全、XSS 等。因为 XSS 基本上是通过注入(inject)一些恶意代码来针对客户端代理(网络浏览器),这些恶意代码由经过身份验证的用户插入时由网络浏览器执行。现在的问题是为什么
我已经阅读了很多关于 XSS 和如何处理的关于 SO 的帖子。通常,共识是白名单而不是黑名单,避免使用正则表达式(太多变体无法处理)。 我正在开发一个 ASP.Net MVC3 应用程序。我需要能够显
我是一名优秀的程序员,十分优秀!