如何将 X-Frame-Options 设置为 angularJS 中的响应 header?

How do I set X-Frame-Options as response header in angularJS?

我在 API 的响应中收到 X-Frame-Options header,但据我所知,为了防止点击劫持攻击,我需要将其添加到 [=24] =] 代码。 UI代码(用angularjs编写)部署在Tomcat(版本7.0.72)服务器中。我尝试在我的应用程序的 web.xml 中添加以下过滤器。

<filter>
        <filter-name>httpHeaderSecurity</filter-name>
        <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
        <async-supported>true</async-supported>
        <init-param>
          <param-name>antiClickJackingEnabled</param-name>
          <param-value>true</param-value>
        </init-param>
        <init-param>
          <param-name>antiClickJackingOption</param-name>
          <param-value>DENY</param-value>
        </init-param>
    </filter>

但是,我看不到添加的 header。有人可以帮我找出解决方案吗?

我找到了解决方案。 X-Frame-Options 响应 header 需要通过 Tomcat 服务器上的 web.xml 添加。我的 web.xml 中缺少 filter-mapping,因此未添加 header。对于可能遇到此问题的任何其他人,我将 web.xml 中的行发布在此处:

<filter>
        <filter-name>httpHeaderSecurity</filter-name>
        <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
        <async-supported>true</async-supported>
        <init-param>
          <param-name>antiClickJackingEnabled</param-name>
          <param-value>true</param-value>
        </init-param>
        <init-param>
          <param-name>antiClickJackingOption</param-name>
          <param-value>DENY</param-value>
        </init-param>
    </filter>
  <filter-mapping> 
    <filter-name>httpHeaderSecurity</filter-name> 
    <url-pattern>/*</url-pattern>
</filter-mapping>
  <welcome-file-list>
      <welcome-file>index.html</welcome-file>
  </welcome-file-list>

由此,添加了以下 header: • X-Frame-Options • X-Content-Type-Options • X-XSS-Protection

如果您不为每个 header 指定值,将为每个设置默认值。您可以在 Tomcat 服务器文档中找到默认值。