在 Struts 2 中使 ${} 运算符 XSS 安全(与 Tapestry 相同)

2024-03-08

正如中提到的http://www.disasterarea.co.uk/blog/xss-vulnerability-in-web-frameworks-2/ http://www.disasterarea.co.uk/blog/xss-vulnerabilities-in-web-frameworks-2/

${} 在 struts 2 中不是 xss 安全的,但在 Tapestry 5 中是安全的。

我不是 Tapestry 人,但我想知道以上是否正确。

据我所知${}是 JSLT 的一部分,它不依赖于任何 Web 框架。所以如果上面的句子是正确的并且${}XSS 在 Tapestry 中安全吗?我们怎样才能使其在 Struts 2 中安全。

Updated:

为了测试它,我运行 struts2-showcase 应用程序,打开modelDriven\modelDrivenResult.jsp并添加以下行:

Am I safe  ${name} 

现在,当您运行展示案例并输入<script> alert('xxxx') </script>作为黑帮名称,您可以看到警报!


  1. Struts2 <s:property value="name" />默认情况下自动转义;
  2. JSTL <c:out value="${name}" />默认情况下自动转义;
  3. JSP EL ${name}没有逃脱。

您可以显式地转义它${fn:escapeXml(name)},或者设置默认执行的转义,创建自定义 ELResolver,如这篇精彩文章中所述:

  • ELResolver 转义 JSP EL 值以防止跨站点脚本编写 http://pukkaone.github.io/2011/01/03/jsp-cross-site-scripting-elresolver.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Struts 2 中使 ${} 运算符 XSS 安全(与 Tapestry 相同) 的相关文章

  • 通过 jdbc 执行存储过程时获取网关超时

    我正在使用 struts2 框架 它基本上是这样的 ActionClass execute call function in business class which returns an object and store this obj
  • 如何修复阻止应用程序引擎部署的新错误? (Google 今天推送了 Cloud Tools SDK 更新后)

    我在用IntelliJ我正在部署到 Google App Engine 标准环境 我有一个Google 推送 Cloud Tools SDK 更新后出现新错误到我的开发机器 我无法再使用 IntelliJ 将当前或之前部署的工作版本部署到
  • <%= foo %> 和 ${ foo } 之间的区别

    第一次在 JSP 中编码 我需要将变量的值呈现为 HTML 看起来有多种方法可以做到这一点 它们之间有什么区别 假设我有一个名为foo and foo 这 使用老式的输出小脚本这是十年来一直灰心丧气 https stackoverflow
  • 使用 Struts 2 的 RESTful Web 服务

    我们正在评估一种教育活动设计 我们希望以 RESTful Web 服务的形式创建完整的后端 处理业务逻辑 这些服务可供各种应用程序使用 从 Struts 2 框架调用这些 Web 服务是个好主意吗 我读了几篇文档 但人们不鼓励这样做 我们很
  • 为什么 XSS 注入需要对 & 进行转义

    OWASP 建议转义以防止 XSS 注入的五个字符是 lt gt 其中 我无法理解为什么 符号 应该被转义以及如何将其用作注入脚本的向量 有人可以举个例子 所有其他四个字符都被转义 但与号没有转义 所以会有 XSS 注入漏洞 我已经检查了另
  • https 安全 cookie 是否可以防止 XSS 攻击?

    https 连接是否可以保护 cookie 并防止 XSS 攻击 我有一个简单的博客 允许用户输入 JavaScript 代码作为输入 我希望允许用户输入 Javascript 同时仍然防止 XSS 攻击和 cookie 窃取 https
  • 使用 Java EE 表单身份验证登录后访问用户详细信息

    我已经实现了一个 Java EE 安全领域 如果用户尝试访问受保护的资源 该安全领域会将用户重定向到 login jsp 假设用户想要访问受保护的网址 http mywebapp shopping cart映射到 ShoppingCartS
  • 增强的 jsp:include 实现

    一直困扰我的事情之一
  • 将 JSTL 添加到 jsp (Tomcat 8) [重复]

    这个问题在这里已经有答案了 我想在我的 jsp 中使用 JSTL 库 现在我按照教程进行操作 它告诉我将此行添加到 jsp 页面 它给我错误无法解析 taglib 与 uri 然后是 URL 我正在运行 tomcat 8 我的 web xm
  • struts2中如何访问url参数

    我正在做一个struts2项目 我在项目中创建了 url 并使用标签传递了参数 我的问题是如何读取操作中的参数 另外 如果执行相同的操作 我将能够将参数视为查询字符串 我问是因为我无法做到 而且我在其中一个教程中看到了它 通常 您将通过使用
  • 在JSP中获取Servlet转发的请求URL

    如何在JSP中获取Servlet转发的请求URL 如果我在 JSP 中运行以下代码 System out println servlet path request getServletPath System out println requ
  • 调整大小时标题不响应

    我有一个表格 当我调整大小时它不会显示我的标题Steps在网络视图上 它确实显示得很完美 但是当我调整大小时 我看不到我的步骤标题 有没有办法使用 css 或 jstl jsf 标签在下面的代码中修复此问题 谢谢您的帮助 像这样的事情 ht
  • Struts 2 动态变量

    我正在尝试使用 set 标签在 Struts2 中创建动态变量
  • HTML-Entity 转义以防止 XSS

    我有一些用户输入 在我的代码中 我确保对以下符号进行转义 gt amp lt gt lt gt gt gt OWASP https www owasp org index php XSS 28Cross Site Scripting 29
  • struts2 date无法通过jquery datetimepicker获取时间

    我是struts2的新手 创建了一个小型Web应用程序 我想要一个帖子是计时器 我选择jquery datetimpicker 在用户选择时间和日期后 它将显示用户选择的时间和日期 我用这个jquery http www javascrip
  • 文件保存在文件系统中 VS 保存在数据库中

    我正在设计一个 servlet 或 Struts2 中的操作 用于文件 图像 文档等 下载 但我想知道哪种更好的方法可以将文件保留在文件系统和数据库中 只需保留文件的路径或将文件保留在数据库中 如 BLOB 我知道当我查询数据库时 哪里的
  • PHP 是否有与 Java 的 RequestDispatcher.forward 等效的功能?

    在 Java 中我可以编写一个非常基本的 JSPindex jsp像这样 这样做的效果是用户请求index jsp 或者只是包含目录 假设index jsp是目录的默认文档 将会看到home action没有浏览器重定向 即 forward
  • 是否可以从 JBoss 容器中部署的所有 .war 文件中读取属性文件

    我已成功将 war 部署到 Jboss Web 容器 其中包含并读取位于 META INF groupid dir artifactid dir 下的 pom properties 为了访问该文件 我在同一 war 中的 JSP 中使用了以
  • 防止语言环境文件中的 HTML 字符实体被 Rails3 xss 保护破坏

    我们正在构建一个应用程序 这是我们第一个使用 Rails 3 的应用程序 并且我们必须从一开始就构建 I18n 作为完美主义者 我们希望在我们的视图中使用真正的排版 破折号 卷曲引号 省略号等 这意味着在我们的 locales xx yml
  • 将java应用程序转换为jsp/servlet [重复]

    这个问题在这里已经有答案了 我有一个接受分段上传的java应用程序 我的问题是我想要一个HTML JSP前端 而不是仅仅在服务器上工作 根据我提供的代码 实现此目的的最佳方法是什么 这对我来说有点困惑 因为我不确定如何将文件上传部分带入 h

随机推荐