问题标签 [esapi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4110 浏览

php - OWASP ESAPI encodeForHTML 带有一些允许的格式标签

在一个 Web 项目中,我们使用 PHP 中的 OWASP ESAPI 进行输出编码。在某些时候,我们希望允许 HTML 的子集用于小的格式化选项(例如,<i><b>),同时禁止所有其他标记和特殊字符(因此它们使用&...;语法进行实体编码)。

我看到以下实现这一目标的可能性:

  1. 告诉OWASP ESAPI 编码器将这些标签列入白名单/允许这些标签,以便它只正确编码所有其他 HTML 标签和实体。但这似乎不受支持。但是,我们可以(也许)编写一个允许这样做的补丁。
  2. 使用 ESAPI 编码后解码白名单标签。这可以被攻击吗?
  3. 对此用例使用其他一些输出编码技术。还有其他图书馆吗?

特别是,我需要将以下标签和属性列入白名单:

  • <br>
  • <i>
  • <b>
  • <u>
  • <big>
  • <small>
  • <sub>
  • <sup>
  • <font color="...">
  • <ul>+<li>
  • <ol>+<li>

请注意,我们的应用程序对安全至关重要。这意味着我们要实现的任何方法都应该只接受上面的标签(可能还有更多的仅格式化标签),其他一切都必须正确地进行实体编码。通过查看代码的(简单)代码/解释,毫无疑问应该很容易验证这是真的。代码越短,审查就越容易。完全手工制作的编码器对此并不好。

0 投票
1 回答
1865 浏览

java - OWASP ESAPI 文件在 Maven 项目 (Web) 中的位置

我正在尝试在我的 Maven Web 项目中使用 OWASP ESAPI 库。我面临的问题是控制器无法找到 ESAPI 属性文件。

我尝试将它们放在资源文件夹中,但它不起作用。我似乎无法让它工作。

有人可以帮我确定 Maven 项目中 ESAPI 资源的正确位置吗?

0 投票
1 回答
6557 浏览

java - ESAPI 编码器规范更改查询参数

我的一个 REST API 有一个名为“partners”的查询参数,它是一个整数列表,因此您可以在 URL 中指定多个值。作为 XSS 攻击的预防措施,我使用 ESAPI 去除输入中的恶意内容。这是问题所在:

我注意到 ESAPI 编码器 cannonicalize 方法(它使用默认编解码器:HTMLEntityCodec、PercentCodec、JavaScriptCodec)会更改查询参数值,因为它认为 &p 或 &pa 是某种编码。请参阅下面的示例

就像是

按预期工作。

另一方面,像

规范化后的输入变为

框架无法解析,因为它认为这只是一个带有 2 个拆分器的查询参数。

如果请求 url 像

规范化后的输入变为

&pa 更改为 '∂'。

正如您可能猜到的,我尝试更改查询参数的名称并且效果很好(可能是因为没有任何相应的编码)。有没有人见过,或者可以指导我是什么导致了这种行为?这听起来像是我的经验不足,但为了确保防止 XSS 攻击,我不确定是否应该尝试从默认编码器中删除任何编解码器。

0 投票
0 回答
928 浏览

spring - ESAPI + Spring MVC

我想在 spring-mvc 中为 XSS 实现 ESAPI。我们必须使用 ESAPI 验证器 API 来实现它。ESAPI 属性保存每个表单字段的可接受值。

在 Spring MVC 中使用 ESAPI 的配置应该如何?

请提出解决方案。

0 投票
3 回答
4647 浏览

java - 如何使用 ESAPI 修复资源注入 (URL) 问题

我是 Stack Overflow 论坛的新手。我有一个关于修复强化扫描问题的问题。

HP Fortify 扫描报告以下代码的资源注入问题。

在上面的代码中,fortify 在 line => url = new URL(testUrl);中显示资源注入

我已经使用 ESAPI 对 URL 验证进行了以下代码更改以解决此问题,

但是,仍然 Fortify 扫描报告为 en 错误。它没有解决这个问题。有什么做错了吗?

任何解决方案都会有很大帮助。

谢谢,

马里穆图

0 投票
1 回答
2299 浏览

java - 如何在 esapi 中创建自定义用户

如何创建自己的用户类,其中包含其他属性?我尝试通过实现接口来创建自己的用户类org.owasp.esapi.User并添加了一些额外的属性。

然后我尝试了这个

但得到这个例外:

我也尝试扩展 DefaultUser 类,但错误是一样的。

0 投票
3 回答
2923 浏览

java - 在 ESAPI 验证器中创建规则

我开始使用 ESAPI,但我遇到了问题。我正在尝试创建一个示例规则(Validator.Single=[AZ]$)。我验证字符串是否只有大写字符。

我将 Validator.Single=[AZ]$ 放在了 validator.properties 文件中,但是当我在代码中使用时:

输出告诉我

并返回一个假的,反对一个真,因为“A”是一个有效的字母。

有谁知道我还需要做什么?还是我让规则变坏了?

感谢您的回复。

0 投票
1 回答
2513 浏览

java - 如何实现 Java ESAPI 来防止 XSS?

我读过很多文章,ESAPI for Java可以通过使用Validator & Encoder来防止XSS。顺便说一句,我正在使用 Eclipse。我没有使用 Maven 也没有使用 Spring。

我的问题是:

  1. 如何实现 Java ESAPI 来防止 XSS?
  2. 除了在Build Path中添加 ESAPI jar 之外,还需要其他配置吗?

提前感谢您的回答。

0 投票
2 回答
4966 浏览

java - spring 表单标签的 ESAPI 实现

我们如何使用 java 和 spring-mvc 在应用程序中实现 ESAPI 输出编码。

阅读了许多帖子并看到了这个:

但是,在我的应用程序中,所有 jsps 都使用如下的 spring 表单标签,

我怎样才能对上述代码进行 ESAPI 实现?有没有其他实现输出编码的方法,比如创建一个过滤器之类的?任何建议都非常感谢!

0 投票
0 回答
62 浏览

java - ESPI:验证失败

我正在为我的 Java Web 应用程序使用 ESPI 安全性。有一种输入类型

当我提交表单时,验证失败。

这种价值有什么特别需要注意的吗?