为解决点击劫持问题,可以通过修改 iServer 配置文件【SuperMap iServer 安装目录】\webapps\iserver\WEB-INF\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>
            <!-- 可选值:true、false分别表示开启和关闭点击劫持防护 -->
            <param-value>true</param-value>
      </init-param>
      <init-param>
            <param-name>antiClickJackingOption</param-name>
            <!-- 点击劫持的防护策略,支持的参数值及对应策略如下:1)DENY:禁止所有域名嵌入;2)SAMEORIGIN:仅允许同源嵌入;3)ALLOW-FROM uri:仅允许指定 URI 嵌入 -->
            <param-value>SAMEORIGIN</param-value>
      </init-param>
      <init-param>
            <param-name>blockContentTypeSniffingEnabled</param-name>
            <!-- 可选值:true、false分别表示开启和关闭禁用浏览器 MIME 类型嗅探。开启后需添加 X-Content-Type-Options:nosniff 头 -->
            <param-value>false</param-value>
      </init-param>
</filter>
<filter-mapping>
      <filter-name>httpHeaderSecurity</filter-name>
      <url-pattern>/*</url-pattern>
</filter-mapping>

1、要使 httpHeaderSecurity 真正起到防护作用,需要在 web.xml 中定义该 filter 和 filter-mappping ;并且<filter-mapping>...</filter-mapping>有严格的执行顺序, httpHeaderSecurity 对应的 filter-mapping 节点需要放在 CorsFilter 之前。

2、在 web.xml 配置完成后,重启 iServer 方可生效。