今天遇到这样一个安全问题需要处理:
漏洞名称: 接口未授权访问。
漏洞URL: https://****/iserver/services
漏洞描述:
多个服务存在未授权访问,可访问清除缓存等功能。
查阅官方社区发现有两个解决办法:
1、通过将该页面删除来避免访问
https://ask.supermap.com/134120
但这个展示隐藏了入口,会对后续查看服务造成麻烦,不是我需要的
2、修改jar文件,添加shiro规则
https://ask.supermap.com/139622
该方案添加权限后,需要登录账号才能访问服务列表,满足需求,下面详细介绍一下如何处理:
1.停止iServer在iServer安装目录bin目录下执行shutdown.bat/shutdown.sh,这个容易理解不停程序无法修改文件;
2.在{iServerHome}/webapps/iserver/WEB-INF/lib目录下找到iserver-all-*.jar;
3.在iserver-all-*.jar中找到resource/security目录下的shiroUrls.ini,在shiroUrls.ini文件末尾添加如下三行:
/services/**/*.css = anon
/services/**/*.js = anon
/** = roleFilter[ADMIN,PUBLISHER]
添加之后保存修改,保存后可以重新打开shiroUrls.ini文件确认是否修改成功;
4.将修改过的shiroUrls.ini文件的jar包,替换之前原来的jar;
5.重新启动iServer,设置之后http://IP:8090/iserver和http://IP:8090/iserver/services都会先跳转到登录页面。
注意事项:
压缩软件测试了好几个,只有2345好压能直接打开jar包,并可以调用其他编辑器修改内部文件后直接保存到jar。
附录:shiro拦截器规则
可以对照看一下添加的三行配置分别起到了什么作用