jsplang参数在struts1.1中自动存储在cookie中
jsp lang parameter is automatically stored in cookie in struts 1.1
我的应用程序是 运行 struts 1.1 tomcat 7.0.47。每当我这样请求 jsp 时:
http://localhost:8080/myTestPage.jsp?lang=fr
值 lang=fr 自动存储在 cookie 中。即使 jsp 与配置中的操作无关,并且仅包含 "eclipse jsp's template code".
这是一个安全问题,因为无法控制此参数(您可以注入 JS)。
如何或为何存储此参数?
此行为仅适用于 lang 参数。
在我看来,您的 cookie 拦截器在(您的/您的其中之一)配置文件中处于活动状态,如下所示:
<action ... >
<interceptor-ref name="cookie">
<param name="cookiesName">cookie1</param>
<param name="cookiesValue">cookie1value</param>
</interceptor-ref>
<interceptor-ref name="cookie">
<param name="cookiesName"<cookie2</param>
<param name="cookiesValue">cookie2value</param>
</interceptor-ref>
....
</action>
取自此link:https://struts.apache.org/core-developers/cookie-interceptor.html
最后我使用 JVM 附带的分析器 (jvisualvm.exe) 找到了导致问题的 class :
与struts无关。这是在 server.xml 文件(服务器级别)上配置的自定义 Tomcat Valve。该阀门位于 /lib 文件夹中的罐子中。
# server.xml
<Valve className="com.example.ValveExample" >
这解释了为什么我找不到 class,它在项目 class 路径中不可见。
所以我所做的只是修改阀门源代码以匹配我想要的行为,打包 Jar 并再次放入 /lib 中。
我的应用程序是 运行 struts 1.1 tomcat 7.0.47。每当我这样请求 jsp 时:
http://localhost:8080/myTestPage.jsp?lang=fr
值 lang=fr 自动存储在 cookie 中。即使 jsp 与配置中的操作无关,并且仅包含 "eclipse jsp's template code".
这是一个安全问题,因为无法控制此参数(您可以注入 JS)。
如何或为何存储此参数? 此行为仅适用于 lang 参数。
在我看来,您的 cookie 拦截器在(您的/您的其中之一)配置文件中处于活动状态,如下所示:
<action ... >
<interceptor-ref name="cookie">
<param name="cookiesName">cookie1</param>
<param name="cookiesValue">cookie1value</param>
</interceptor-ref>
<interceptor-ref name="cookie">
<param name="cookiesName"<cookie2</param>
<param name="cookiesValue">cookie2value</param>
</interceptor-ref>
....
</action>
取自此link:https://struts.apache.org/core-developers/cookie-interceptor.html
最后我使用 JVM 附带的分析器 (jvisualvm.exe) 找到了导致问题的 class :
与struts无关。这是在 server.xml 文件(服务器级别)上配置的自定义 Tomcat Valve。该阀门位于 /lib 文件夹中的罐子中。
# server.xml
<Valve className="com.example.ValveExample" >
这解释了为什么我找不到 class,它在项目 class 路径中不可见。
所以我所做的只是修改阀门源代码以匹配我想要的行为,打包 Jar 并再次放入 /lib 中。