我的应用程序正在tomcat 7.0.47上运行struts 1.1。每当我请求这样的jsp时:
http://localhost:8080/myTestPage.jsp?lang=fr
值lang = fr自动存储在cookie中。即使jsp与配置中的操作无关,并且仅包含“ eclipse jsp的模板代码”。
这是一个安全问题,因为无法控制此参数(您可以注入JS)。
如何或为什么存储此参数? 此行为仅适用于lang参数。
答案 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中。