我在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提供了新的更改。
如果我有任何遗漏,请告诉我。
最佳答案
我也有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 7.0.63版(see here)中新添加的,但是我正在运行7.0.52版(Ubuntu 14.04 LTS附带的版本)。
我通过安装最新的Tomcat版本解决了该问题,现在过滤器可以按预期工作。
关于tomcat - Tomcat 7中的Xframe选项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34991226/