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

相关推荐
zyplayer-doc5 小时前
VuePress类静态文档站和动态知识库怎么选:两种技术路线的适用场景
javascript·人工智能·后端·安全·智能手机
rannn_1115 小时前
【力扣hot100】链表专题|160、206、234、141、142
java·算法·leetcode·链表·面试·开发
IKUN家族7 小时前
Spring IoC&DI
java·spring·rpc
用户938515635077 小时前
从前后端分离到前端接口工程:React + MockJS + Vite 解析
前端·后端·全栈
码事漫谈8 小时前
世界由什么构成——这个问题比你想的更缠人
后端
摇滚侠8 小时前
《SpringBoot 3:入门与应用实战》第 2 章 IOC 思想与实现 阅读笔记 1
spring boot·笔记·后端
山荷枝8 小时前
03-框架--Spring
java·后端·spring
ChaHae-In9 小时前
SpringBoot统一功能处理
java·spring boot·后端
coder!mq9 小时前
说几个常见的语法糖?
java·开发语言·算法