渗透测试——安全漏洞修复解决方案Java版 (持续更新中20210527)

渗透测试——安全漏洞修复解决方案Java版 (持续更新中20210527)

项目背景描述

背景: 由于公司的项目上线需要符合安全标准。为平滑支撑项目业务上的持续发展,通过咨询和技术的手段推动信息安全的深入,通过渗透测试挖掘潜在问题,保障业务不会受到恶意攻击,从而提高核心化的信息竞争力。对本项目进行了渗透测试。测试结果存在的漏洞包括:

  • 敏感信息泄露
  • 未授权访问
  • 越权访问(水平越权和垂直越权)
  • 请求重放
  • url中含有回话令牌
  • XSS跨站脚本攻击
  • CSRF跨站请求伪造
  • 短信轰炸
  • 短信验证码暴力破解
  • 用户可枚举
  • jQuery版本漏洞

下面将记录对以上几个类型的漏洞的修复的具体方案,持续更新(上班划水)…

项目没有申请HTTPS证书,几乎是从零开始搭建的,初始设计只是为了尽可能完成业务开发,犯了接口没有统一规范等毛病,可以说是安全问题中的几个大类全都踩坑了一遍→_→。

项目: 本项目主要是基于JSP+Servlet+SSM架构开发的小型Java项目。定义为面向兼容Android和IOS的各款手机的页面开发,对开发者而言:一次编写,各端运行;一套代码,套个壳子跨平台,所以项目中有不少的对接原生安卓的接口与调用,目前这里不作详细描述。

敏感信息泄露

漏洞描述

  1. 暴露用户名和明文密码;
  2. 请求响应报文中包含了完整的sql语句,暴露了详细数据库表的信息。
  3. 暴露了隐藏的登录页面
  4. 敏感数据包括不限于:口令、密钥、证书、会话标识、License、隐私数据(如短消息内容)、授权凭据、个人数据(如姓名、住址、电话等)等,在程序文件、配置文件、日志文件、备份文件及数据库中都有可能包含敏感数据

通用解决方案

  1. 需要加密账号密码、手机号等敏感信息;
  2. 删除详细的报错信息,用统一模糊提示代替错误信息
  3. 删除非必要的页面,减小攻击面

修复过程
总而言之就是,项目所有接口都没有经过加密,请求与响应的数据都是明文传输,请求可能被截获导致数据泄露。
考虑到整个项目组开发统一原则,采用AES加密的方式对前后端数据传输(Base64编码)、接口对接Android客户端(字节流)进行加解密。
下面给出详细Demo与修复注意事项

有时间再更新20210527。。。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值