20190916常见的漏洞分析总结
1. 越权漏洞
- 越权:即执行没有相应权限的操作,出现越权漏洞的主要原因是,在服务端对用户提交的请求,没有校验用户的身份或者权限导致。
- 越权根据权限操作分类,可分为垂直越权和水平越权,垂直越权即低权限账号可进行高权限账号的操作,水平越权发生在相同权限的不同账号之间。
2. SQL注入漏洞
SQL注入:即把SQL语句插入到请求中参与数据库操作的参数中导致的。
SQL注入的危害:导致数据库数据泄漏、获取服务器权限
SQL注入的修复方案:
最优选择是:SQL语句预编译方式
对于不能使用上面方法的参数,要使用过滤器来检查该参数
3. XXE漏洞
XXE漏洞,即XML External Entity,主要是由于DTD外部实体引用导致的,在程序解析xml输入或者文件时,没有禁止外部实体的加载,导致可加载恶意外部文件,造成文件读取、命令执行、内网端口扫描、攻击内网网站、发起dos攻击等危害。xxe漏洞触发的点往往是可以上传xml文件的位置,没有对上传的xml文件进行过滤,导致可上传恶意xml文件。
修复方案:禁用外部实体引用,开发语言中已经提供了禁用外部实体的方法,如:Java中
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setExpandEntityReferences(false);
4. 金额篡改漏洞
金额篡改:即对支付金额,或者商品数量之类的关键参数进行修改,导致支付金额与订单金额不一致,而服务端缺少相关检查导致的。
防治方案:对于与支付相关的参数的值,不能使用从前端获取到的相关参数的值,要使用数据库或者后台使用的值,这样就会避免产生这类问题。
5. 敏感信息泄漏
敏感信息泄漏:主要是由于开发人员将代码上传到公共资源库导致。
防治措施:开发人员应该提高自身的安全意识;同时禁止将公司代码上传到网上的公共资料库,如:github
总结
一切的用户输入都是不可靠的,开发人员应该对每一个用户可控的参数在服务端添加有效的检查。
开发人员应该提供自己的安全意识。
还没有评论,来说两句吧...