tomcat 7中的Xframe选项

时间:2016-01-25 11:14:31

标签: tomcat web.xml x-frame-options clickjacking

我在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带来了新的变化。

如果我遗漏了任何东西,请告诉我。

1 个答案:

答案 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版本解决了这个问题,现在过滤器按预期工作了。