企业安全API库,为Java Web应用程序提供安全控制,包括身份验证、访问控制、输入验证、输出编码和加密操作,以降低应用风险。
| OWASP® ESAPI(OWASP 企业安全 API)是一个免费、开源、Web 应用程序安全控制库,旨在帮助程序员更轻松地开发低风险应用。ESAPI for Java 库专为程序员设计,使其更容易为现有应用程序添加安全功能,同时也为新开发提供了坚实基础。 |
您可以访问 https://owasp.org/www-project-enterprise-security-api/ 查看 OWASP ESAPI Wiki 页面。ESAPI legacy GitHub 仓库也有一些有用的 Wiki 页面。
这是 ESAPI 的 legacy 分支,意味着它是该项目的一个积极维护分支,但不会对此分支进行重大 *新* 功能开发。已经计划用于 2.x 分支的功能将继续推进。 您可以在 [https://github.com/ESAPI/esapi-java-legacy](https://github.com/ESAPI/esapi-java-legacy) 找到该 GitHub 仓库。
重要说明: ESAPI legacy 的默认分支现在是“develop”分支(而不是“main”(原“master”)分支),未来的开发、错误修复等工作将在此进行。“main”分支现在被标记为“受保护”;它反映了最新的稳定 ESAPI 发布版本(截至本文时为 2.1.0.1)。请注意,将“develop”分支设为默认分支可能会影响您打算提交的任何拉取请求。
此外,使用 ESAPI 的 Java 基线版本最低要求为 Java 7。(在 2.2.0.0 版本中从 Java 6 升级而来。)
https://github.com/ESAPI/esapi-java
但请注意,ESAPI 3 的工作尚未真正开始,仍处于早期规划阶段。目前已有的代码将来也很可能会发生变化。
ESAPI 发布说明位于 ESAPI 的“documentation”目录中。通常命名为“esapi4java-core-2.#.#.#-release-notes.txt”,其中“2.#.#.#”指的是 ESAPI 版本号(采用语义化版本控制)。
自 ESAPI 2.2.3.0 起,ESAPI 使用的 AntiSamy 版本默认包含“slf4j-simple”并对 AntiSamy 策略文件进行 XML 模式验证。请阅读 2.2.3.0 版本的发布说明(至少开头部分),其中包含可能影响您使用 ESAPI 的重要说明!已警告过您!!!
最新的 ESAPI 发布版本为 2.2.3.0。默认配置 jar 及其 GPG 签名分别位于 esapi-2.2.3.0-configuration.jar 和 esapi-2.2.3.0-configuration.jar.asc。
最新的常规 ESAPI jar 可以从 Maven Central 获取。
但是,在开始新项目使用 ESAPI 之前,请务必阅读“我应该使用 ESAPI 吗?”。
除非我们无意中出错,否则我们的意图是,对于已标注“@deprecated”的类、方法和/或字段,在移除前至少保留两年或直到下一个主版本号(例如目前的 3.x),以先到者为准。请注意,此策略不适用于 org.owasp.esapi.reference 包下的类。您不应在代码中直接使用这些类。
Fork 并提交拉取请求!就这么简单!我们通常只接受错误修复,不接受新功能,因为作为 legacy 项目,我们不打算添加新功能,尽管我们可能会破例。如果您想提出新功能,最好通过下面提到的 ESAPI-DEV 邮件列表进行讨论。请注意,我们会审查所有拉取请求,包括任何贡献的编码风格;请使用您正在编辑的文件中已有的相同编码风格。
如果您是 ESAPI 新手,一个好的起点是查找标记为“good first issue”的 GitHub 问题。(例如,要查找所有带有该标签的 open 问题,请使用 https://github.com/ESAPI/esapi-java-legacy/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22。)
您可以在文件 'CONTRIBUTING-TO-ESAPI.txt' 中找到更多详细信息。
2014 年中,ESAPI 将所有代码迁移到了 GitHub。该迁移于 2014 年 11 月完成。
所有来自 Google Code 的问题都已迁移到 GitHub Issues。我们有一个分配给我们的 JIRA/Confluence 实例,但尚未配置与 GitHub Issues 同步,因此不应使用它。JIRA 很好,但如果不能与 GitHub Issues(我们大多数用户报告问题的地方)同步,就无法使用。作为开发者,我们不想花时间关闭来自多个错误跟踪网站的问题。因此,在实现同步之前(见 GitHub 问题 #371),请仅使用 GitHub 报告错误。
报告问题时,请清晰描述,并确保 ESAPI 开发团队拥有足够的信息来重现您的结果。如果您还没有这样做,现在可能是阅读 Eric S. Raymond 的经典文章“如何聪明地提问”的好时机:http://www.catb.org/esr/faqs/smart-questions.html。
如果您发现了错误,请在 esapi-legacy-java 仓库中创建 issue:https://github.com/ESAPI/esapi-java-legacy/issues
注意:请勿使用 GitHub Issues 询问关于 ESAPI 的问题。如果需要,请将问题发布到本页底部列出的两个邮件列表(现位于 Google Groups)。如果我们发现 GitHub Issues 中提出问题,我们会直接关闭并将您引导至邮件列表。
如果您在 ESAPI legacy 中发现了漏洞,首先请搜索 Issues 列表(见上文)查看是否已被报告。如果尚未报告,请直接联系 Kevin W. Wall (kevin.w.wall at gmail.com) 和 Matt Seil (matt.seil at owasp.org)。请不要通过 GitHub Issues 或 ESAPI 邮件列表报告漏洞,因为我们希望确保在补丁实施和部署期间用户安全。如果您希望因发现漏洞而得到认可,请遵循此流程。(最终,我们希望由 BugCrowd 处理此事,但这还需要一段时间。)此外,当您发送描述漏洞的邮件时,请使用您通常监控的电子邮件地址。
更多详细信息可在文件 'SECURITY.md' 中找到。
Wiki: https://owasp.org/www-project-enterprise-security-api/
每日构建: Travis CI - https://travis-ci.org/bkimminich/esapi-java-legacy
JIRA:https://owasp-esapi.atlassian.net/browse/ESAPILEG
Issues:在另行通知之前,请使用 GitHub Issues 报告错误和功能请求。
文档: https://owasp-esapi.atlassian.net/wiki/display/ESAPILEG/ESAPI+Legacy(即将推出),目前可在 'documentation/' 目录下找到通用文档,最新的 Javadoc 位于 https://www.javadoc.io/doc/org.owasp.esapi/esapi/
通过我们的 IRC 频道提供实时支持(但如果您想使用,并希望 ESAPI 开发团队参与,请先通过电子邮件告知我们日期和时间):
服务器:irc.freenode.net
频道:#esapi
Webchat:https://webchat.freenode.net/
邮件列表: 截至 2019-03-25,ESAPI 的两个邮件列表已正式从 Mailman 邮件列表迁移到 Google Groups 的新家。
这两个 Google Groups 的名称为“esapi-project-users”和“esapi-project-dev”,您可以通过“订阅 ESAPI 用户列表”和“订阅 ESAPI 开发者列表”分别订阅后才能发帖。
旧 Mailman 邮件列表的存档(ESAPI-Users 和 ESAPI-Dev)仍可在 https://lists.owasp.org/pipermail/esapi-users/ 和 https://lists.owasp.org/pipermail/esapi-dev/ 获取。
关于 Google Groups 及其 Web 界面的通用概述,请参见 https://groups.google.com/forum/#!overview
关于订阅和退订 Google Groups 的帮助,请参见 https://webapps.stackexchange.com/questions/13508/how-can-i-subscribe-to-a-google-mailing-list-with-a-non-google-e-mail-address/15593#15593。
OWASP 是 OWASP 基金会的注册商标。