SpringBoot集成ESAPI

官网地址:https://github.com/ESAPI/esapi-java-legacy

一、POM依赖

java 复制代码
<dependency>
    <groupId>org.owasp.esapi</groupId>
    <artifactId>esapi</artifactId>
    <version>2.6.0.0</version>  <!-- Preferably the latest version, but > 2.5.3.0 -->
    <classifier>jakarta</classifier>
    <!-- 如果项目中没有引入其他日志框架,可以不排除 -->
     <exclusions>
      	<exclusion>
        	<groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
        </exclusion>
      </exclusions>
</dependency>

二、ESAPI配置文件

这里需要连两个文件ESAPI.propertiesvalidation.properties

请参阅 https://mvnrepository.com/artifact/org.owasp.esapi/esapi/latest,选项卡 无论您使用什么构建工具。如果您需要 Jakarta 版本,请确保 加

java 复制代码
<classifier>jakarta</classifier>

并包含您正在使用的任何 jakara.servlet:jakarta.servlet-api 版本

java 复制代码
<scope>provided</scope>

第 2 步:获取 2 个属性文件 ESAPI.propertiesvalidation.properties

从您正在使用的 ESAPI 发行版中下载这两个文件 https://github.com/ESAPI/esapi-java-legacy/releases 并下载 esapi--configuration.jar 文件(如果您希望确认 GPG 签名,则下载 .asc 文件)。

解压缩您刚刚下载的配置文件并找到 2 个属性文件,复制 2 个属性 文件从 configuration/esapi目录复制到 /src/main/resource

三、配置文件放置位置

如果我们对配置文件路径没有自定义配置,那么ESAPI会从默认路径中读取配置文件。

默认路径如下:

  • esapi.jar路径:Not found in 'org.owasp.esapi.resources' directory or file not readable
  • 系统资源路径: Not found in SystemResource Directory/resourceDirectory: .esapi\validation.properties
  • 系统user.name目录: Not found in 'user.home' (C:\Users\myhome) directory: C:\Users\myhome\esapi\validation.properties

自定义配置文件路径:

启动类的main方法中添加

java 复制代码
// 确保加载配置
ESAPI.securityConfiguration().setResourceDirectory("src/main/resources");

测试

java 复制代码
import org.owasp.esapi.ESAPI;
import org.owasp.esapi.Encoder;

public class SecurityExample {
    public static void main(String[] args) {
        Encoder encoder = ESAPI.encoder();
        String userInput = "<script>alert('XSS');</script>";
        String safeOutput = encoder.encodeForHTML(userInput);
        System.out.println(safeOutput);  // 输出: &lt;script&gt;alert(&#x27;XSS&#x27;);&lt;/script&gt;
    }
}

至此:我们就可以把ESAPI的配置文件放到项目/src/main/resource目录下,并打入jar、war包了

参考文章:https://www.cnblogs.com/xuchen0117/p/14760935.html

老版本:https://blog.csdn.net/suolongdse/article/details/115733940

相关推荐
uhakadotcom1 分钟前
不想学MCP,可以学Google的Agent2Agent(A2A)协议
后端·面试·github
uhakadotcom12 分钟前
ImageRunner漏洞:Google Cloud Run中的权限提升漏洞
后端·面试·github
uhakadotcom13 分钟前
浏览器缓存劫持:一种新型的恶意软件传播方式
后端·面试·github
Tigshop开源商城系统14 分钟前
Tigshop| 一个基于Java的开源商城系统
java·spring boot·spring·开源
CrazyTom20 分钟前
应用预测框架-基于Android S
后端
eternal__day20 分钟前
深入理解Spring IoC&DI
java·开发语言·笔记·后端·spring·java-ee
LaoZhangAI25 分钟前
2025最全Dify接入GPT-4o多模态指南:7种方法彻底解决集成问题【实战教程】
前端·后端
遥不可及38730 分钟前
基于Redis实现短信防轰炸的Java解决方案
后端
斜月31 分钟前
springboot开发技巧-jasypt加解密实践
spring boot·后端
StrongerLLL31 分钟前
Java中的序列化机制
java