Tomcat 7中的Xframe选项

14

我已将以下代码片段添加到我的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个回答

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 7.0.63版本中新增的(请看这里),但我使用的是7.0.52版本(它是Ubuntu 14.04 LTS自带的版本)。

我通过安装最新的Tomcat版本解决了问题,现在过滤器可以按预期工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接