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

相关推荐
isysc118 分钟前
面了一个校招生,竟然说我是老古董
java·后端·面试
uhakadotcom28 分钟前
静态代码检测技术入门:Python 的 Tree-sitter 技术详解与示例教程
后端·面试·github
幂简集成explinks34 分钟前
e签宝签署API更新实战:新增 signType 与 FDA 合规参数配置
后端·设计模式·开源
River41638 分钟前
Javer 学 c++(十三):引用篇
c++·后端
RoyLin1 小时前
TypeScript设计模式:迭代器模式
javascript·后端·node.js
爱海贼的无处不在1 小时前
一个需求竟然要开14个会:程序员的日常到底有多“会”?
后端·程序员
IT_陈寒2 小时前
Java 性能优化:5个被低估的JVM参数让你的应用吞吐量提升50%
前端·人工智能·后端
南囝coding2 小时前
《独立开发者精选工具》第 018 期
前端·后端
绝无仅有2 小时前
数据库MySQL 面试之死锁与排查经验总结
后端·面试·github