ESAPI.properties中所需的最低属性

时间:2017-09-07 06:27:02

标签: java esapi

我的Web应用程序仅使用以下ESAPI编码方法:

  • ESAPI.encoder().encodeForLDAP()
  • ESAPI.encoder().encodeForHTML()

在这种情况下,ESAPI.properties中所需的最低属性是什么?

现在我正在使用ESAPI 2.1.0.1和this properties

2 个答案:

答案 0 :(得分:3)

我想我回答了上一个问题。

在2009 - 2011年的ESAPI项目开始之前,您再次成为一些糟糕设计选择的受害者。即,基于Singleton的巨石。

ESAPI目前的设计是单一的,这意味着它试图成为每个人的一切。正如您所知,这不是最好的设计策略,而是我们所处的位置。

我们有几个建议将各种功能分解为单独的库,但这是构建ESAPI 3.0的未来工作。

对于你目前的困境,有太多的图书馆依赖于你觉得你不需要而且不打算使用的功能。不幸的是,这仅仅是当前的生活现实。似乎没有人使用我们的身份验证界面 - 但它适用于所有人,即使他们不需要它。大多数用户首先使用我们的编码/解码功能,然后是验证API然后加密。最后一对是日志注入和WAF。

ESAPI的大多数用户都使用非prod测试文件,并保留该文件。 (这是真的坏主意。)

其他人会使用您引用的那个并通过例外工作,在邮件列表中向我们提问。

这也不是走路的理想之路,但它是我们现在所走的道路。

从我的角度来看,危险就是如果你选择为那些ESAPI抛出异常的人实现快乐路径配置,其目标是让它快乐,这样你就可以进入你的两个狭窄的用例。

然后你得到晋升,你的应用程序上的另一个开发人员面临一个她认为已解决的问题,因为你处理了与ESAPI的所有集成。

请注意不要使用ESAPI的部分。这不是理想的,但它是我们2017年所处的位置。在用户列表中向我们提问。

如果不这样做 - 尤其是在加密部分,将会使您的应用程序在将来容易受到攻击。

答案 1 :(得分:3)

如果您只是使用编码器()功能,编码器部分中的3行就是您所需要的。第99-119行(所有评论之间)。

修改 另外,您必须指定默认编码器。例如:

ESAPI.Encoder=org.owasp.esapi.reference.DefaultEncoder

Encoder.AllowMultipleEncoding=false

Encoder.AllowMixedEncoding=false

Encoder.DefaultCodecList=HTMLEntityCodec,PercentCodec,JavaScriptCodec