java哪些异常可能导致敏感信息泄露_java开发安全策略_风险漏洞与解决方案

项目语言:java

项目环境:JDK1.8

Web服务器Nginx+tomcat

数据库mysql

前端技术bootstrap+layui+jquery+ajax

后端技术maven+springboot+shiro+jpa+druid+log4j

1、 敏感信息泄露

a) 漏洞描述:敏感信息泄露漏洞,是一种通过提交错误请求,使系统出现异常处理并报错,并且将系统程序、配置、路径、类、方法 等敏感信息泄露出来的漏洞。

b) 解决方案:创建统一错误页面,在后端将异常进行拦截处理,将错误信息存储到日志中,并返回对应的错误描述或状态码。

2、 用户密码未加密传输

a) 漏洞描述:用户登录时,密码进行明码传输,导致请求被拦截获取账号信息。

b) 解决方案:使用不可逆的加密算法,采取salt(盐)+用户名+密码进行加密的方式,由前端加密后传输到后端进行身份认证。

3、 SQL注入

a) 漏洞描述:通过在string(字符串)类型的字段中,输入敏感SQL语句,进行免密登录或越权操作。

b) 解决方案:对输入信息进行敏感字符拦截,并在后端开发中使用对象SQL注入方式进行数据库访问,避免使用SQL拼接的形式进行数据库访问。

4、 越权敏感信息修改

a) 漏洞描述:修改信息时,仅根据id参数进行操作,存在越权修改任意数据问题。

b) 解决方案:后端使用session机制,对敏感方法进行session当前用户权限验证。

5、 恶意文件上传

a) 漏洞描述:在项目中上传恶意文件。

b) 解决方案:后端对上传文件后缀名进行验证,防止系统操作文件或病毒文件的恶意上传。

6、 服务器文件盗取

a) 漏洞描述:根据服务器账户/入侵,在服务器中找到所需项目文件进行文件盗取。

b) 解决方案:后端使用UUID(唯一识别码)对文件进行重新命名(没有后缀),将原文件名(包含后缀名)、存储路径、对应的UUID等信息存储到数据库中进行关联。

7、 弱口令

a) 漏洞描述:密码机制过于简单

b) 解决方案:在用户注册或修改密码时,对密码进行条件限制,规则:8位及以上长度,密码中必须包含字母、数字、特殊字符,且不可为中文字符、不能与用户名相同。

8、 Shiro反序列化漏洞

a) 漏洞描述:低版本的shiro框架存在密匙公开,身份认证方法存在反序列化漏洞问题。

b) 解决方案:将shiro版本限制在1.4.2以上。

9、 ObjectInputStream反序列漏洞

a) 漏洞描述:java输入流ObjectInputStream类的resolveClass方法中存在反序列漏洞,容易被伪造的类进行反序列注入。

b) 解决方案:如果在项目中需要使用ObjectInputStream,则重写resolveClass方法,增加反序列类校验认证。

10、 数据拦截篡改

a) 漏洞描述:对请求信息进行拦截,篡改后重新发送到后端请求路径中。

b) 解决方案:使用签名认证的方式,对每次请求都进行签名加密,数据传输到后端后会依据数据信息进行签名认证。

11、 伪造HTTP请求

a) 漏洞描述:伪造HTTP请求信息的行为包括:XSS跨站脚本攻击、CSRF跨站请求伪造漏洞防护、URL链接注入漏洞防护等攻击方式。

b) 解决方案:配置filter过滤器对所有HTTP请求的请求头参数和请求数据进行合法性校验。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值