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

时间:2018-08-24 17:47:56

标签: jsp tomcat localization tomcat7 struts1

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

http://localhost:8080/myTestPage.jsp?lang=fr

值lang = fr自动存储在cookie中。即使jsp与配置中的操作无关,并且仅包含“ eclipse jsp的模板代码”。

这是一个安全问题,因为无法控制此参数(您可以注入JS)。

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

2 个答案:

答案 0 :(得分:0)

听起来像您的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>

来自此链接:https://struts.apache.org/core-developers/cookie-interceptor.html

答案 1 :(得分:0)

最后,我发现了使用JVM附带的探查器(jvisualvm.exe)引起问题的类:

它与支柱无关。这是在server.xml文件(服务器级别)上配置的自定义Tomcat Valve。那个阀门在/ lib文件夹的一个罐子里。

# server.xml
<Valve className="com.example.ValveExample" >

这说明了为什么我找不到该类,但从项目类路径中看不到它。

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