Tomcat XSS 问题 - URL 参数中的 <script> 标记

标签 tomcat tomcat7 xss

在我的 Tomcat 7.0.88 应用程序中,用户可以将标记放入 URL 参数中,这显然是一个 XSS 问题。但是,我不确定如何解决它,我希望有一些可用的 Tomcat 过滤器( native 或第三方)或 Java 库我可以用来解决这个问题,而不是尝试推出我自己的解决方案(从来没有好主意)。

攻击可以通过我的应用中的 URL 执行,例如

https://<url>/user_report.jsp?round=3</script><script>alert('1');</script>

如果我将该脚本标签放入亚马逊的页面中,他们会对其进行清理并删除。

此外,我什至不清楚这将如何触发警报显示,因为该标记不在 <HTML> 中。随处标记。

最佳答案

您必须转义这些字符。对于 PHP,解决方案很简单,对于 JSP,则有点不同。

您需要使用 <c:out>标签。而不是显示 ${round}在页面上,您需要使用转义标签。

尝试使用 <c:out value="${round}">这将通过将 HTML 特殊字符转换为实体值来清理页面上打印的内容。

请注意,您需要更改我的解决方案以适合您的应用。这应该可以解决问题,但我对 JSP 应用程序的了解有限。

关于Tomcat XSS 问题 - URL 参数中的 &lt;script&gt; 标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50990713/

相关文章:

jakarta-ee - 当应用程序部署在 tomcat 的 webapps 中的文件夹内时数据源失败

启用安全管理器的 Tomcat 7 和 Servlet 3.0 模式上下文加载中的 Spring

java - tomcat 7上的 war 部署问题

angular - 在 Angular 中处理用户输入时,我在多大程度上担心安全性(XSS)?

javascript - jsbin.com 上的 XSS

php - 除了 SQL 注入(inject)和 XSS 攻击,还有什么我需要担心的吗?

tomcat - Sentry.io + Tomcat + JUL : all logs are sent to sentry

java - 如何以编程方式绑定(bind)上下文特定的 JNDI 资源

java - 无法编译 JSP : The type java. util.Map$Entry 的类无法解析。它是从所需的 .class 文件间接引用的

java - 使用 Servlet+JSON+MySQL 配置 Web 服务和瘦客户端