9

我是一名 Java 开发人员,正朝着通往 App Security 的道路前进,我偶然发现了 OWASP 组织及其配套的 Java API,ESAPI。

在几个月前我在这个网站上提出的另一个问题中,有人向我指出 ESAPI 是开源应用程序安全行业的主要参与者。

我现在想知道的是,我确信 ESAPI 在javax.security.auth身份验证/授权领域以及其他领域可能与内置 Java 安全模型(植根于 )重叠。但是,如果严格遵守 Java 安全 API,是否存在 ESAPI 明确解决的应用程序安全领域无法实现的问题?

基本上,我问的是,如果一些现有的 Java API 已经涵盖了 ESAPI 的所有优点/特性,那么学习 ESAPI 是否有意义。提前致谢!

4

3 回答 3

7

AFAIK,ESAPI 也使用 java API 并添加特定于现实世界威胁的包装器。例如 WAF(Web 应用程序防火墙),要使用 Java API 实现此目的,您将结束编写大量代码,这些代码由 ESAPI 完成并很好地包装为 API,所以,现在如果您想做 WAF 检查,您可以只需在几个方法调用中实现它。

简而言之,ESAPI 类似于包装库(内置 java API),它减少了重新发明轮子并有助于抵御现实世界的安全威胁。

如果您看到此ESAPI API URL,您可以轻松识别 ESAPI 如何开发 API 来应对每种可能的威胁。

于 2012-01-11T18:48:03.977 回答
3

ESAPI 的一个关键优势/优势是它的输入验证和输出清理功能,AFAIK,Java 安全类目前没有解决这些问题。ESAPI 专门针对 Web 应用程序安全领域,而这正是它擅长的地方。

于 2012-11-15T03:45:41.777 回答
1

作为一名 .NET 开发人员,我对 Java 和 ESAPI 只略知一二。然而,作为一个极度偏执的开发人员,专注于编写安全代码(因为我写了一些非常糟糕的东西),这是我看过的东西。

在我看来,学习这个绝对值得。没有这些包绝对可以编写好的代码,但是使用这些包可以更容易地编写好的代码。

在 .NET 方面,我使用了类似的东西 - Microsoft Patterns and Practices 库。据我了解,Java ESAPI 具有类似的目的,即:

它提供了一组易于使用的方法,这些方法已经在后台使用了最佳实践,因此您不必担心太多。

例如(这只是编写安全应用程序所需的一小部分),使用 ADO.NET 和 Java,通过将用户输入连接到字符串中来编写 SQL 语句非常容易(不好),而且它也同样易于使用参数化查询(好)。使用 API,可以公开使用幕后良好模式的方法。让新开发人员跟上速度更容易,并确保您不会“马虎”,同时使您能够编写更少的代码。

于 2012-01-11T18:53:01.493 回答