我在tomcat web.xml中添加了以下代码片段,以防止点击劫持。
在添加内置过滤器的部分中,我添加了
<filter>
<filter-name>httpHeaderSecurity</filter-name>
<filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
<init-param>
<param-name>antiClickJackingOption</param-name>
<param-value>SAMEORIGIN</param-value>
</init-param>
</filter>
对于我添加的过滤器映射部分。
<filter-mapping>
<filter-name>httpHeaderSecurity</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
编辑并进行这两项更改后,测试页面(我试图在<frame>
中打开目标页面的html页面)通过(无法在框架内打开目标页面)。
但是apache欢迎页面给404带来了新的变化。
如果我遗漏了任何东西,请告诉我。
答案 0 :(得分:15)
我也遇到了tomcat7和完全相同的过滤器这个问题。
您应该做的第一件事是检查CATALINA_BASE / logs /下的tomcat日志。找到并打开localhost.YYYY-MM-DD.log;你应该找到错误的原因。
在我的日志文件中出现此错误:
SEVERE: Exception starting filter httpHeaderSecurity
java.lang.ClassNotFoundException: org.apache.catalina.filters.HttpHeaderSecurityFilter
然后我发现HttpHeaderSecurityFilter是在Tomcat V7.0.63(see here)中新添加的,但我运行的是7.0.52版本(Ubuntu 14.04 LTS附带的版本)。
我通过安装最新的Tomcat版本解决了这个问题,现在过滤器按预期工作了。