OWASP企业安全API库,为Java Web应用程序提供安全控制,包括身份验证、访问控制、输入验证、加密和编码,以降低漏洞风险。
| OWASP® ESAPI(The OWASP Enterprise Security API,OWASP企业安全API)是一个免费、开源、web应用安全控制库,旨在帮助程序员更轻松地开发低风险应用。ESAPI for Java 库旨在帮助程序员更容易地为现有应用添加安全改造。同时,ESAPI for Java 也为新开发提供了坚实的基础。 |
OWASP ESAPI 的 Wiki 页面位于 https://owasp.org/www-project-enterprise-security-api/。此外,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' 分支),未来的开发、bug 修复等都将在此分支上进行。'main' 分支现在被标记为“受保护”;它反映的是最新的稳定版 ESAPI 发布(截至目前为 2.1.0.1)。请注意,将 'develop' 分支设为默认分支可能会影响你计划提交的任何 Pull Request。
此外,使用 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" 的类、方法或字段,至少保留两 (2) 年,或直到下一个主要发布版本号(例如目前的 3.x),以先到者为准,然后才会移除。 请注意,此策略不适用于 org.owasp.esapi.reference 包下的类。你不应在代码中直接使用这些类。
Fork 并提交 Pull Request!就是这么简单!我们通常只接受 bug 修复,而不接受新功能,因为作为 legacy 项目,我们不打算添加新功能,但可能会有例外。如果你希望提出新功能,最好的讨论途径是通过下方提到的 ESAPI-DEV 邮件列表。请注意,我们会审查所有的 Pull Request,包括代码风格;请使用与你正在编辑的文件相同的代码风格。
如果你是 ESAPI 的新手,一个好的起点是寻找标记为 'good first issue' 的 GitHub 问题。(例如,要查找所有带有该标签的未解决问题,请访问 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(我们大多数用户报告问题的地方)同步,它就不可用。作为开发者,我们不想花时间关闭来自多个 bug 跟踪站点的问题。因此,在实现同步之前(参见 GitHub Issue #371),请仅使用 GitHub 报告 bug。
报告问题时,请清晰描述,并确保 ESAPI 开发团队拥有足够信息以重现你的结果。如果你尚未阅读过 Eric S. Raymond 的经典文章“提问的智慧”,现在可能是好时机:http://www.catb.org/esr/faqs/smart-questions.html。
如果你发现了一个 bug,请在 esapi-legacy-java 仓库创建 issue:https://github.com/ESAPI/esapi-java-legacy/issues
注意:请不要使用 GitHub Issues 询问关于 ESAPI 的问题。如果你希望这样做,请发帖至本页面底部列出的两个邮件列表(现位于 Google Groups)。如果我们发现以 GitHub Issue 形式提出的问题,我们只会将其关闭并引导你这样做。
如果你在 ESAPI legacy 中发现了漏洞,请首先搜索 issue 列表(见上文)查看是否已被报告。如果尚未报告,请直接联系 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 报告 bug 和功能增强请求。
文档: 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 基金会公司的注册商标。