上下文输出编码是一种阻止跨站脚本(Cross-Site Scripting)所必需的计算机编程技术。本项目是一个基于 Java 1.8+ 的简单易用、即插即用的高性能编码器类,几乎没有额外负担。
有关 OWASP Java Encoder 的更详细文档,请访问 https://owasp.org/www-project-java-encoder/。
您可以从 Maven Central 下载 JAR。
encoder-jsp 中提供了 JSP 标签和 EL 函数,以下同样可用:
这些 JAR 包也可在 Central 中获得:
<dependency>
<groupId>org.owasp.encoder</groupId>
<artifactId>encoder</artifactId>
<version>1.4.0</version>
</dependency>
<!-- using Servlet Spec 5 in the jakarta.servlet package use: -->
<dependency>
<groupId>org.owasp.encoder</groupId>
<artifactId>encoder-jakarta-jsp</artifactId>
<version>1.4.0</version>
</dependency>
<!-- using the Legacy Servlet Spec in the javax.servlet package use: -->
<dependency>
<groupId>org.owasp.encoder</groupId>
<artifactId>encoder-jsp</artifactId>
<version>1.4.0</version>
</dependency>
OWASP Java Encoder 库旨在以极小的开销(无论是性能还是使用上)实现快速的上下文编码。要开始使用,只需添加 encoder-1.2.3.jar,导入 org.owasp.encoder.Encode 并开始使用即可。
示例用法:
PrintWriter out = ....;
out.println("<textarea>"+Encode.forHtml(userData)+"</textarea>");
请查看 Encode 的 javadoc,了解您可以编码的各种上下文。
祝您编码愉快!
由于 encoder-jakarta-jsp 项目的测试用例,打包和测试该项目需要 Java 17。只需运行:
mvn package
要运行 Jakarta JSP 集成测试,以验证 JSP 标签和 EL 是否正常工作,请运行:
mvn verify -PtestJakarta
| JAR | 模块名称 |
|---|---|
| encoder | owasp.encoder |
| encoder-jakarta-jsp | owasp.encoder.jakarta |
| encoder-jsp | owasp.encoder.jsp |
| encoder-espai | owasp.encoder.esapi |
| 库 | TagLib |
|---|---|
| encoder-jakarta-jsp | <%@taglib prefix="e" uri="owasp.encoder.jakarta"%> |
| encoder-jsp | <%@taglib prefix="e" uri="https://www.owasp.org/index.php/OWASP_Java_Encoder_Project"%> |
OWASP Java Encoder 项目是一个多模块 Maven 项目:
$ mvn package
基准测试(目前仍有待改进)可以通过以下命令运行:
$ mvn verify -Pbenchmarks
发布通过 central-publishing-maven-plugin 完成:
$ mvn mvn clean package deploy -DperformRelease=true
团队很高兴地宣布,1.4.0 版本已发布!
团队很高兴地宣布,1.3.1 版本已发布!
团队很高兴地宣布,1.3.0 版本已发布!
jakarta.servlet.* 添加对 Servlet 规范 5 的支持 #75。
团队很高兴地宣布,1.2.3 版本已发布!
团队很高兴地宣布,1.2.2 版本已发布!
团队很高兴地宣布,1.2.1 版本已发布!
OWASP Java Encoder 已迁移至 GitHub。同时发布了 1.2 版本!
请访问 https://www.owasp.org/index.php/OWASP_Java_Encoder_Project#tab=Use_the_Java_Encoder_Project 查看每个 API 用法的详细文档和示例!
我们很高兴地宣布 1.1.1 版本已发布。除了一项重要的错误修复外,我们还添加了 ESAPI 集成,用 OWASP Java Encoder 替换旧的 ESAPI 编码器。
我们很高兴地宣布 1.1 版本已发布。除了几项次要的编码增强外,我们还提升了性能,并添加了一个 JSP 标签和函数库。