如何使用 Struts 预防 XSS 漏洞

2024-04-03

我们需要在 Struts 应用程序中添加反 XSS 支持。最具体地说,架构师要求所有用户输入在存储到数据库之前必须进行“清理”。由于我不想重新发明方轮,我可以使用哪个 Java 库来实现此目的?以及把它放在哪里?理想情况下,它应该是可配置的(要检查哪些输入字段,而不是请求中的所有输入字段)并且快速。我第一个想到的是 Struts Validator。

提前致谢 路易斯


我建议你看看 OWASPESAPI项目 http://www.owasp.org/index.php/ESAPI。它已经开发了一年多,即将发布 2.0。

对于转义存储在数据库中的值,请查看 Encoder.encodeForSQL() 方法(参考实现 http://code.google.com/p/owasp-esapi-java/source/browse/trunk/src/main/java/org/owasp/esapi/reference/DefaultEncoder.java).

对于输入验证,请查看验证器(参考实现 http://code.google.com/p/owasp-esapi-java/source/browse/trunk/src/main/java/org/owasp/esapi/reference/DefaultValidator.java).

注意:我的理解是,旧项目(例如 Stinger 和 CSRFGuard)提供的功能已包含在 ESAPI 中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Struts 预防 XSS 漏洞 的相关文章

  • Spring Security 通过并发登录尝试将用户锁定

    我是安全新手 遇到了一个问题 该问题导致用户帐户被锁定 只有重新启动应用程序才能修复它 我有一个带有 spring security 4 0 2 RELEASE 应用程序的 spring boot 1 3 0 BUILD SNAPSHOT
  • Java-线程与CPU的关系

    我对多线程还很陌生 我正在开发一个项目 尝试在我的 Java 程序中使用 4 个 CPU 我想做类似的事情 int numProcessors Runtime getRuntime availableProcessors ExecutorS
  • 如何迭代所有注册表项?

    我正在尝试迭代所有注册表项以查找 包含 并删除 jre1 5 0 14 值 有办法做到吗 下面的代码只是在特定键下找到jre1 5 0 14 我确实想迭代所有的键 顺便说一句 if 子句获取是否等于 jre1 5 0 14 但如果它包含 j
  • 设置 SWT Shell 的默认字体

    有没有办法为整个 Shell 设置默认字体 以便任何新控件都将使用相同的字体 看来现在我必须为我创建的每个控件设置字体 这导致了太多的冗余 默认使用的字体由平台选择 请参阅中的其他信息 类字体 SWT 标准小部件工具包 http book
  • 实现与扩展:何时使用?有什么不同?

    请用易于理解的语言进行解释或提供某些文章的链接 extends is for 延伸一类 implements is for 实施一个接口 接口和常规类之间的区别在于 在接口中您不能实现任何声明的方法 只有 实现 接口的类才能实现方法 C 中
  • 在 IntelliJ 上进行 Google App Engine Java 开发?

    令人烦恼的是 Google App Engine 已成为其中的另一个项目 他们只发布 Eclipse 插件 如 Spring Webflow 而我更喜欢 IntelliJ 你能用IntelliJ成功运行本地测试环境吗 并调试 部署本地或实时
  • 如何测试调用父类的受保护(不需要的)方法的方法?

    我陷入了一个非常奇怪的情况 我有一些需要测试的特定代码 这里是 public class A The real method of real class is so big that I just don t want to test it
  • 如何将自定义日志处理程序添加到 Google App Engine?

    我正在尝试向我的 java 应用程序添加自定义日志处理程序 我已经实现了一个扩展 java util Logging Handler 类的 InnerLogger 类 在我的logging properties中声明为处理程序 handle
  • Java 唤醒休眠线程

    我阅读了其他帖子 但没有找到我正在寻找的确切答案 所以我希望有人能给出一些澄清 我有一个将运行一段时间的程序 我有一些在后台运行的线程来执行各种任务 为了简单起见 让我们考虑 3 个线程 ThreadA每 10 秒执行一次任务 其中Thre
  • BlackBerry SQLite:将一个 SQLite 数据库连接到另一个

    我正在尝试使用 SQLite 将一个 SQLite 数据库附加到 BlackBerry 上的另一个数据库附加数据库 http www sqlite org lang attach html命令 Database d1 d2 Statemen
  • 打印 jasper 文件时执行报表 SQL 语句时出错

    我修改了一个旧项目 但无法确定这段代码有什么问题 使用下面的 jrxml它创造 jasper文件 当我打印 jasper 文件时 使用此代码JasperPrint jasperPrint JasperFillManager fillRepo
  • 如何从 Google Custom Search API 获取超过 100 个结果

    我正在尝试使用 Google Custom Search API 在 Java 中进行研究 因此 我需要为每个查询提供一个大的结果集 然而 我似乎仅限于前 100 个结果 这比我需要的要少得多 我使用这样的列表方法 list setStar
  • 抽象类或接口。哪种方式是正确的?

    有两种方法可以选择抽象类或接口 微软解决方案和Oracle解决方案 微软 设计指南 请使用抽象 在 Visual Basic 中为 MustInherit 类而不是接口来将协定与实现分离 http msdn microsoft com en
  • Java ConcurrentModificationException [重复]

    这个问题在这里已经有答案了 当删除倒数第二个元素时 没有 ConcurrentModificationException List
  • 战争库中的罐子爆炸

    我们可以将分解的 jar 文件放入 war web inf 库中吗 它在 JBOSS 4 2 中对我不起作用 我收到以下错误并且无法部署应用程序 Caused by javax management RuntimeOperationsExc
  • 我们可以有虚假中断吗?

    我正在创建一个任务轮询器 每分钟都会查找任务 它看起来像这样 public class Poller private final ExecutorService e Executors newSingleThreadExecutor pub
  • 读/写带有特殊字符的.txt文件

    I open Notepad Windows 并写 Some lines with special characters Special 并前往另存为 someFile txt 与Encoding set to UTF 8 在Java中我有
  • 将带有 webapp 的 WAR 部署到 Maven 中央存储库是否有意义?

    这样做有意义吗 如果是 我在哪里可以找到使用简单的 Web Hello World 执行此操作的示例 当人们从 Maven 执行 Web 应用程序时 他们会使用 Jetty 来运行它吗 我想 tomcat 太重了 任何帮助将不胜感激 谢谢
  • 编写自定义 Eclipse 调试器

    EDIT 一定有某种方法可以解决这个问题 而无需编写全新的调试器 我目前正在研究在现有 java 调试器之上构建的方法 如果有人对如何获取 Java 调试器已有的信息 有关堆栈帧 变量 原始数据等 有任何想法 那将非常有帮助 我想要做的是我
  • H2 用户定义的聚合函数 ListAgg 不能在第一个参数上使用 DISTINCT 或 TRIM()

    所以我有一个 DB2 生产数据库 我需要在其中使用可用的函数 ListAgg 我希望使用 H2 的单元测试能够正确测试此功能 不幸的是H2不直接支持ListAgg 但是 我可以创建一个用户定义的聚合函数 import java sql Co

随机推荐

  • SQL 表只有一行? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • iOS 14 - 当精确位置权限被拒绝时,如何让 iBeacon 唤醒应用程序?

    我之前在使用 iOS 14 0 时遇到了以下问题 通过后台位置权限我可以 注册iBeacon区域监控 从应用程序切换器杀死该应用程序 点击屏幕即可看到应用程序在控制台中重新启动 应用程序正在运行但不在应用程序切换器中 使用 iOS14 重新
  • PHP 7.4 中的空合并赋值 ??= 运算符是什么

    我刚刚观看了有关即将推出的 PHP 7 4 功能的视频 并看到了这个新功能 操作员 我已经知道了 操作员 这有什么不同 来自docs https wiki php net rfc null coalesce equal operator 合
  • 如何在数组中搜索字符串的一部分?

    我有一个arraylist
  • 从构造函数调用方法:错误:未捕获类型错误:未定义不是函数

    Task 我需要在 Typescript 中构建一个类 在它自己的构造函数中调用它自己的一些方法 Problem 以下示例代码代表的实际代码将成功编译 但在 Javascript 控制台中进行测试时却无法成功编译 Sample export
  • 以编程方式确定汉字的笔画数?

    Unicode 是否存储有关中文 日文或其他基于笔画的字符的笔画计数信息 一点谷歌搜索想出了Unihan zip ftp ftp unicode org Public UNIDATA Unihan zip 发布的文件统一码联盟 http u
  • IntelliJ Idea Maven 项目中 Scala 模块的 Scala 签名错误

    免责声明 我是 Scala 新手 尝试在 IntelliJ IDEA 中使用简单的 scala archtype 创建示例 Scala Maven 项目 IntelliJ 版本是 14 1 2 下面是我的 pom 文件 我确实将 Scala
  • 未找到 GraphViz 的可执行文件:Anaconda-3

    我正在尝试显示树输出 但是当我运行下面的脚本时 我收到如下错误 IncationException 未找到 GraphViz 的可执行文件 我在这里搜索过类似的主题 但其中大多数与 Mac 相关 我使用的是 Windows 10 64 位操
  • 类常量

    我有几个 obj c 类 每个类都需要一些在 switch 语句中使用的常量 我曾尝试使用以下命令在 m 文件中定义这些数字常量 define预处理器指令 所有这些常量都以 kCell 开头 这似乎工作得很好 但 Xcode 的代码感知向我
  • 是否可以设置 git merge 来自动解析? (git 雷雷雷)

    我有 2 台笔记本电脑 其中有一个纯文本文件 该文件必须同步 它用作第三方软件的数据库 客户希望每天同步该文件的内容 第一个想法是制作一个将文件上传到 Dropbox 的脚本 但如果发生冲突 两个用户删除 A 行 第一个用户添加 B 行 第
  • 如何使用slf4j和java.util.logging登录tomcat

    我创建了一个在 Tomcat 8 上运行的 Web 应用程序 一如既往 我想使用 slf4j 在本例中 由 java util logging 支持 因为它是 Tomcat 的默认设置 相关依赖是这样的
  • 返回对 C++ 中静态局部变量的引用

    这个问题只是为了我更好地理解C 中的静态变量 我认为如果将 C 中的局部变量声明为静态 我可以返回对它的引用 因为该变量应该在函数返回后继续存在 为什么这不起作用 include
  • 如何解决Admob执行异常?

    我一直在尝试在我的全新应用程序中实施 Google Admob 广告 我已经处理错误代码 0 内部错误 和 广告 错误等待未来 异常几个小时了 从今天早上起 我就有了一个带有付款方式的 Admob 帐户 我一直在使用我的凭据关注 Googl
  • Tectonicus 2.25 的 XML 文件错误

    我正在尝试为我的单人游戏世界制作一张 Tectonicus 地图 因此我需要一个 XML 配置文件 但是当尝试制作地图时 我在终端 MAC OSX 中收到此错误 Parsing config from Users ralphvandenhe
  • 我无法找到 libftdi 的 mpsse (SPI) 模式的示例代码

    这不是一个家庭作业问题 尽管这是一个工作问题 几个月前 我刚写完一份规范 老板就会把它外包出去 因为资金紧张 所以我正在尝试自己做这件事 我是一个很弱的 C 编码员 如果 gcc 能输出一些运行时不会出现段错误的东西 或者有时根本没有任何东
  • 从 Spring MVC @RestController 返回视图

    As RestController是组成 Controller and ResponseBody 我相信如果我希望我的控制器同时工作 MVC 和 REST 控制器只需注释 RestController应该没事 那是对的吗 As RestCo
  • 从 App Store 中删除应用程序

    我按照以下步骤从 App Store 中删除了我的应用程序 但我没有看到任何 删除 选项 http msdn microsoft com en us library windows apps jj193601 aspx http msdn
  • 尝试创建一个脚本,如果提交者回答错误,该脚本会在表单提交时向提交者发送电子邮件

    我正在查看表单提交 如果提交者填写了任何错误的问题 则向提交者发送电子邮件 但脚本也会向所有输入正确的提交者发送电子邮件 我知道 if 脚本可以处理数字 就像我在另一个项目中使用它一样 但是当我将问题更改为 true false 时 它 似
  • 我应该使用哪个命名空间和程序集来声明共享项目中的转换器

    我应该使用哪个命名空间和程序集在 Xamarin 中的共享项目中声明转换器 对于该资源
  • 如何使用 Struts 预防 XSS 漏洞

    我们需要在 Struts 应用程序中添加反 XSS 支持 最具体地说 架构师要求所有用户输入在存储到数据库之前必须进行 清理 由于我不想重新发明方轮 我可以使用哪个 Java 库来实现此目的 以及把它放在哪里 理想情况下 它应该是可配置的