jsp lang参数自动存储在struts 1.1的cookie中

Meh*_*hdi 7 jsp tomcat localization tomcat7 struts1

我的应用程序在tomcat 7.0.47上运行struts 1.1.每当我请求这样的jsp时:

http://localhost:8080/myTestPage.jsp?lang=fr
Run Code Online (Sandbox Code Playgroud)

值lang = fr自动存储在cookie中.即使jsp与配置中的动作无关,也只包含"eclipse jsp的模板代码".

这是一个安全问题,因为没有关于此参数的控制(您可以注入JS).

如何或为何存储此参数?此行为仅适用于lang参数.

Meh*_*hdi 0

最后我使用 JVM 附带的探查器 (jvisualvm.exe) 找到了导致问题的类:

它与struts无关。它是在 server.xml 文件(服务器级别)上配置的自定义Tomcat Valve 。该阀门位于 /lib 文件夹中的 jar 中。

# server.xml
<Valve className="com.example.ValveExample" >
Run Code Online (Sandbox Code Playgroud)

这解释了为什么我找不到该类,它在项目 classpath 中不可见。

所以我所做的只是修改 Valve 源代码以匹配我想要的行为,打包 Jar 并再次将其放入 /lib 中。