GIS门户作为云GIS平台的出入口,通常处于开放的公有网络中,容易成为各种安全攻击的首要目标,例如跨站脚本攻击、服务端请求伪造、重放攻击等。为保障GIS系统的安全性与可靠性,SuperMap iPortal产品提供了一系列安全防护手段,用户可通过简单的配置,构筑起云GIS系统的第一道防线。
一
启用 HTTPS 加密通信,禁用 HTTP 协议
安全问题场景:SuperMap iPortal启动后默认使用的是HTTP协议, HTTP以明文的方式发送内容,不适合传输一些敏感信息,为保证传输信息不被中间服务器或者其他探测软件捕获,建议您启用HTTPS加密通信,规避潜在的信息泄密风险。
应对措施:禁用 HTTP 协议,开启 HTTPS,对通信内容加密。
配置方法:
在实际生产环境中,需要先获取CA签名的SSL证书;
修改SuperMap iPortal安装目录/conf/server.xml 配置文件,通过JSSE或APR来配置 HTTPS 加密;
修改SuperMap iPortal安装目录/webapps/WEB-INF/iportal.xml文件,配置以HTTPS协议启用服务代理;
配置后重启iPortal方可生效;
二
配置启用跨域访问白名单
安全问题场景:SuperMap iPortal实现了 HTML5 跨源资源共享(CORS)策略。SuperMap iPortal启动后默认允许来自任意域的跨域请求访问成功,可能会遇到类似“跨域策略配置不当”等安全问题,建议您配置跨域访问白名单,进行更精准的控制,以规避潜在的安全风险。
应对措施:配置跨域访问的白名单,进行更精准的跨域策略控制。
配置方法:
修改 SuperMap iPortal 安装目录/webapps/iportal/WEB-INF 目录下的 web.xml 文件中”cors.allowed.origins”的<param-value>值,填写允许跨域请求访问的白名单;
配置后重启iPortal方可生效;
三
配置启用防护跨站脚本攻击
安全问题场景:攻击者利用跨站脚本攻击 XSS(Cross Site Scripting) 在Web页面里插入恶意Script代码,当用户浏览该Web页面时,嵌入其中的Script代码会被执行,达到恶意攻击用户的目的。常见的跨站点脚本漏洞问题有:URL链接注入漏洞、URL基于DOM的跨站点脚本漏洞、URL宽字符跨站漏洞和URL跨站漏洞。
应对措施:修改SuperMap iPortal 的初始化配置文件web.xml,以启用防护跨站脚本攻击。
配置方法:
在SuperMap iPortal 安装目录/webapps/iportal/WEB-INF 目录下 web.xml 文件中,配置XssFilter的filter和对应的filter-mapping,以开启防护跨站点脚本攻击;
配置后重启iPortal方可生效;
四
开启许可驱动管理器的安全防护
安全问题场景:在安装SuperMap iPortal许可驱动后,可访问localhost:1947进入许可驱动管理页面,该页面默认未对访问用户做权限设置,任意用户都可以访问,存在安全风险。
应对措施:对许可驱动管理页面设置密码。
配置方法:
访问 localhost:1947,点击左侧Option下的Configuration,进入Basic Settings菜单栏;
在Password Protection选择项选择All ACC Page;
点击右侧的 Change Password 按钮设置密码。如您是首次设置密码,则 Current Admin Password项不填,直接输入新密码即可。密码输入完成点击 Submit 提交;
在弹出的登录窗中输入您设置的密码,用户名不填,点击“登录”;
在Basic Settings 菜单栏下再次点击 Submit,完成设置;
五
关闭Remember Me功能防止重放攻击
安全问题场景:iPortal启动后,默认开启了Remember Me功能,cookie中会携带 Remember Me =参数,可能使会话未及时失效,导致重放攻击(Replay Attacks)的安全问题。攻击者可以通过截取网络数据包来对系统进行越权访问。
应对措施:关闭Remember Me功能,以降低风险。
配置方法:
SuperMap iPortal安装目录/webapps/iportal/WEB-INF 目录下iserver-system.xml 文件,找到如下配置
<accessControl><SecuritySetting><tokenKey><disableRememberMe>true</disableRememberMe></tokenKey></SecuritySetting></accessControl>
在<tokenKey>下一行增加<disableRememberMe>true</disableRememberMe>即可关闭 RememberMe 功能;
此配置项需重启iPortal生效;
六
开启异地登录检测
安全问题场景:iPortal启动后默认未开启异地登录检测,此时一个账户可以同时在多台主机上登录,存在账号泄露风险。
应对措施:开启异地登录检测,配置异地登录处理策略。
配置方法:
打开SuperMap iPortal 安装目录/webapps/iportal/WEB-INF 目录下 iserver-system.xml 文件,找到如下配置:
<checkLoggedInAnotherPlace>false</checkLoggedInAnotherPlace>
将false修改为true,即开启异地登录告警。配置后需重启iPortal方可生效;
七
修改用于生成令牌的共享密钥
安全问题场景:SuperMap iPortal支持按用户角色授权访问,并支持Token(令牌)机制供Web应用安全对接。Token是包含用户名、有效期和某些专有信息并通过共享密钥加密的信息字符串。如果Token过于简单或易于破译,恶意用户可以复制加密算法、获取授权用户的列表,并能够生成令牌,使用在iPortal中任何受保护的资源,存在安全风险。
应对措施:Token共享密钥应不少于16个字符,共享密钥越复杂,恶意用户越难解密和破译共享密钥。在安全性要求极高的环境中,应定期更改密钥。
配置方法:
以管理员身份登录门户首页,访问”管理”→“安全”→“安全配置”→“Token配置”页面;
查看当前Token的共享密钥或者修改Token共享密钥;
页面中的“生成密钥”按钮可以协助您生成随机共享密钥;
点击“修改密钥”可以让新创建的共享密钥生效;
八
安全传输令牌
安全问题场景:防止拦截和错误使用令牌,导致其他安全问题。
应对措施:通过 https/http 请求头传递令牌,不用 url进行传递。
配置方法:
找到SuperMap iPortal 安装目录/webapps/iportal/WEB-INF 目录下 web.xml 文件中”cors.allowed.headers”的<param-value>值,在已有值后添加一项“token”,如:
<init-param><param-name>cors.allowed.headers</param-name><param-value>Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers,token</param-value></init-param>
找到SuperMap iPortal 安装目录/webapps/iportal/WEB-INF/config/proxy/WEB-INF 目录下 web.xml 文件中”allowedHeaders”的<param-value>值,在已有值后添加一项”token”,如:
<init-param><param-name>allowedHeaders</param-name><param-value>Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers,token</param-value></init-param>
配置完成后重启iPortal,即可在Headers请求头中传递token从而访问iPortal受保护的资源,例如:“token:ruOVcrgRTNIDgLnfHgq3z_9XXeaBpVZ6joY85yTyAABwS7a_dHOce6Ma4IC2gYbmqKdFl-qA8dCjHrcfFP_pyA..”
九
配置代理请求规则
安全问题场景:iPortal支持代理请求转发功能,攻击者可能通过服务端请求伪造SSRF(Server-Side Request Forgery) 利用iPortal发起请求访问资源,从而攻击外网无法访问的内部系统。
应对措施:配置代理请求URL规则,进行代理请求的限制与过滤。
配置方法:
打开SuperMap iPortal 安装目录/webapps/iportal/WEB-INF 目录下 iportal.xml 文件;
根据安全要求配置<proxyUriRuleConfig>项,限制或放行指定URI规则的请求;
十
开启登录验证码
安全问题场景:iPortal启动后,默认未开启登录验证码功能,此时用户登录无需输入验证码进行人机检测,存在用户密码暴力破解风险。
应对措施:开启登录验证码功能,提升账号安全性。
配置方法:
打开SuperMap iPortal 安装目录/webapps/iportal/WEB-INF 目录下 iportal.xml 文件,找到如下配置:
<captchaConfig><!-- 验证码配置 --><enable>false</enable><!-- 是否启用验证码 --><length>4</length><!-- 验证码长度 --><expire>120</expire><!-- 验证码过期时间(单位:秒) --></captchaConfig>
将<enable>一项的值由false修改为true,开启登录验证码功能;
十一
设置密码防暴力破解
安全问题场景:iPortal启动后,默认未开启密码防暴力破解设置,攻击者可能通过穷举手段猜解出用户口令,从而盗取用户信息。
应对措施:启用密码防暴力破解设置,限制用户登录尝试次数。
配置方法:以管理员身份登录门户首页,访问”管理”→“安全”→“安全配置”→“密码安全设置”页面,勾选启用密码防暴力破解,并设置用户最大连续登录失败次数与账号锁定时间。
锁定周期:检测连续失败次数的时间周期,默认为10分钟;
允许连续失败次数:输入密码连续失败的最大次数,超过该次数则账户立即被锁定,默认为5次;
自动解锁时间:账户锁定后,自动解锁所需的时间,默认为20分钟;
安全是GIS系统稳定高效运行的基础保障,需要从多方面出发,制定完备的安全防护策略,加强日常管理与环境维护,持续提升GIS系统安全性,为用户提供更可靠的GIS服务。

