配置启用防护跨站脚本攻击 |
为解决跨站点脚本漏洞问题,例如,URL 链接注入漏洞、URL 基于 DOM 的跨站点脚本漏洞、URL 宽字符跨站漏洞、URL 跨站漏洞等,可以通过修改 iServer 配置文件【SuperMap iServer 安装目录】\webapps\iserver\WEB-INF\web.xml 来启用防护跨站点脚本攻击(在 iPortal 中启用防护跨站点脚本攻击时,配置文件为【SuperMap iPortal 安装目录】\webapps\iportal\WEB-INF\web.xml)。
配置开启防护跨站点脚本攻击如下所示:
<filter> <filter-name>XssFilter</filter-name> <display-name>XssFilter</display-name> <filter-class>com.supermap.server.host.webapp.XssFilter</filter-class> <async-supported>true</async-supported> <init-param> <param-name>processMode</param-name> <!-- 可选值:CLEAN、THROWERROR分别表示清除危险字符,抛出异常 --> <param-value>THROWERROR</param-value> </init-param> <init-param> <param-name>antisamyName</param-name> <!-- 可选值:antisamy-myspace.xml、antisamy-ebay.xml、antisamy-tinymce.xml、antisamy-slashdot.xml --> <param-value>antisamy-ebay.xml</param-value> </init-param> <init-param> <param-name>xsrfDefendEnable</param-name> <!-- 可选值:true、false分别表示开启和关闭防护跨站请求伪造 --> <param-value>true</param-value> </init-param> <init-param> <param-name>xsrfDefendTime</param-name> <!-- 开启防护跨站请求伪造后,可以设置防护跨站请求时间间隔,单位毫秒 --> <param-value>1000</param-value> </init-param> <init-param> <param-name>refererWhiteList</param-name> <!-- 开启防护跨站请求伪造后,可以设置跨站请求白名单 --> <param-value>域名1;域名2;域名3</param-value> </init-param> <init-param> <param-name>hostWhiteList</param-name> <!-- 开启防护跨站请求伪造后,可以设置host请求头白名单 --> <param-value>ip1:port1;ip2:port2;ip3:port3</param-value> </init-param> </filter> <filter-mapping> <filter-name>XssFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
注意:
1、要使 XssFilter 真正起到防护作用,需要在 web.xml 中定义该 filter 和 filter-mappping ;并且<filter-mapping>...</filter-mapping>有严格的执行顺序, XssFilter 对应的 filter-mapping 需要放在 iserver-services 之前。
2、在 web.xml 配置完成后,重启 iServer(iPortal)方可生效。
其中,主要配置<init-param>初始化参数如下: