SpringBoot集成ESAPI

ops/2024/11/29 11:20:19/

官网地址: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


http://www.ppmy.cn/ops/137637.html

相关文章

单片机 WiFi 手机 APP

目录 一、引言 二、连接原理 1. 关键模块选择 2. 硬件连接方式 3. 编程实现通信 三、创建服务器 1. 服务器编程 四、开发手机 APP 1. 平台选择 2. 开发工具介绍 3. 网络通信实现 五、测试与调试 1. 单元测试 2. 集成测试 六、部署与维护 1. 发布 APP 2. 用户反…

【如何提升代码工程质量】code review篇

应该对于基本上所有软件相关的公司来说&#xff0c;都有committer机制&#xff0c;即代码写好之后会提交合并请求&#xff0c;待相关人员code review通过后再进行合入&#xff0c;所以code review就是代码合入代码仓库的最后一道关卡&#xff0c;对于代码质量的影响也是不容忽视…

大电流PCB设计

随着工业自动化、新能源汽车、以及高性能计算领域的不断发展,现代电子系统对大电流PCB设计的需求越来越高。在某些应用中,电流需求甚至可能达到100A或更高,这对PCB的设计提出了巨大的挑战。如何有效地应对这些挑战,确保PCB在高电流环境下的安全性、稳定性与高效性,是当今电…

黑马程序员Java项目实战《苍穹外卖》Day01

苍穹外卖-day01 课程内容 软件开发整体介绍苍穹外卖项目介绍开发环境搭建导入接口文档Swagger 项目整体效果展示&#xff1a; ​ 管理端-外卖商家使用 ​ 用户端-点餐用户使用 当我们完成该项目的学习&#xff0c;可以培养以下能力&#xff1a; 1. 软件开发整体介绍 作为一…

Qt桌面应用开发 第八天(读写文件 文件编码 文件流)

目录 1.读文件 2.写文件及编码格式 2.1写文件 2.2编码格式 3.文件信息读取 4.文件流 4.1QTextStream 4.2QDataStream 1.读文件 需求&#xff1a;一个pushButton&#xff0c;点击之后可以选择一个txt文件的路径&#xff0c;路径会显示在lineEdit上&#xff0c;txt文件的…

解决在mysql容器内修改了my.conf文件,导致mysql启动后又失败:mysql容器的状态一直处于Restarting

1、原因描述 因项目启动提示&#xff1a; ‘xxxx.QRTZ_LOCKS’ doesn’t exist&#xff0c;导致报错的原因&#xff1a;mysql数据库对大小写敏感导致。 mysql版本&#xff1a;8.0.25 2、解决问题 2.1.连接Mysql并进入mysql命令行 mysql -u root -p # Enter password:2.2 执行…

【Axure视频教程】中继器表格列传值

今天教大家在Axure制作中继器表格列传值的原型模板&#xff0c;我们可以中继器表格里列的值&#xff0c;传递到中继器外部的元件&#xff0c;例如&#xff0c;把表格里面的员工姓名设置到外部文字标签里&#xff0c;并且可以随着中继器表格内容的变化&#xff0c;传的值也是实时…

Java与Kotlin在鸿蒙中的地位

在当今移动操作系统领域&#xff0c;华为推出的鸿蒙系统&#xff08;HarmonyOS&#xff09;正逐渐崭露头角&#xff0c;成为与Android、iOS并驾齐驱的操作系统之一。对于开发者而言&#xff0c;了解如何为鸿蒙系统开发高质量的应用程序变得至关重要。在这篇文章中&#xff0c;我…