1. 密码等敏感信息明文传输问题
且不说第三方偷偷截取用户网络(例如vpn盛行,所有数据都会经过vpn服务器转发),三大运营商必然会收集用户的上网数据,所以敏感数据要多加处理,增加破解分析难度;
a. 敏感信息进行加密;
b. 使用post传递参数;(在电信大数据中心待过,大家都在用url参数挖掘用户信息)
c. 直接使用https服务,虽然这样会让速度变慢。
2. 文件上传问题
有些黑客会上传一些病毒或脚本,来窃取或攻击系统;
a. 文件上传所在路径不能拥有执行权限,只有读写权限;
b. 文件上传的类型需要做限制,明确规定jpg或excel;
c. 文件大小要有限制,高并发的上传文件,可能耗尽系统的io;
3. 文件下载问题
文件下载也是大问题,一不小心就把系统里的重要文件给down走了;
a. 明确basepath;
b. filename的相对路径不允许出现“../”做好过滤,建议记录出现此路径的用户,做审查用;
c. 文件下载要有会话权限过滤;在老的时候用tomcat开发,直接映射一个路径,这个是非常危险的,因为任何一个人都可以把文件都down走;
d. 重要文件要使用token,这个也是权限控制的一部分。
4. 表单数据问题
说到表单第一个想到的就是sql注入,尤其是php开发;表单问题主要是csrf、xss攻击;这个是大话题……
CSRF 跨域伪造请求,钓鱼网站你登陆一个假的银行网站,然后你的钱就不见了;当然也有非正式应用,比如数据爬取,只要你登陆(比如淘宝),平台就可以爬取到你平台上的所有数据;
XSS 跨站脚本攻击,表单提交的数据中包含可运行的脚本(js等),删除系统数据或down数据等等危害;
a. 通过 referer、token 或者 验证码 来检测用户提交;
b. 尽量不要在页面的链接中暴露用户隐私信息;
c. 对于用户修改删除等操作最好都使用post 操作;
d. 避免全站通用的cookie,严格设置cookie的域;
e. 过滤提交的内容,禁止脚本类内容;
f. 使用controller,统一做数据过滤;
5. 服务信息泄露
用户会利用服务的版本,针对性的进行漏洞攻击;比如tomcat版本、php版本等
a. 添加错误页面:404、500、400等页面;
b. 做好异常抓取;
6. 资源权限控制
做好业务跟资源层面的分权分域;
a. 推荐使用shiro对菜单和按钮进行角色分权;
b. 设计数据的权限,用户只能查看操作自己所有数据。
7. 应用启动部署
a. 禁止使用root用户启动
网友评论