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

相关推荐
咩咩啃树皮2 小时前
第40篇:Vue3组件化开发精讲——组件拆分、复用、父子通信、工程化架构
java·前端·架构
阳光是sunny2 小时前
LangGraph中的Reducer是什么
前端·人工智能·后端
灯澜忆梦2 小时前
GO_并发编程---定时器
开发语言·后端·golang
阳光是sunny2 小时前
从链到图:LangGraph 入门基础全解析
前端·人工智能·后端
鱟鲥鳚2 小时前
Spring Boot 集成 LangChain4j:从模型调用到 Tool Calling(Demo版)
java·spring boot
皮皮林5513 小时前
开源实力派,给本地 AI 装上深度调研能力,一张 3090 跑到 95.7 分!
后端
努力的小雨3 小时前
把 Windows 桌面图标做成一个会自己运转的小世界
后端
武子康4 小时前
Search Console Platform Properties 扩大 SEO 资产边界:从 Page Ranking 到 Topic Coverage(5 类误读边界 + 3 表数据层设计)
前端·人工智能·后端
大模型码小白4 小时前
【Python零基础教程】继承、多态与魔法函数:面向对象编程三大核心特性详解
java·大数据·开发语言·人工智能·python·ai编程
腾渊信息科技公司4 小时前
Spring Boot对接MES实战:视觉检测数据自动同步方案
java·人工智能·spring boot·后端·计算机视觉·ai·软件需求