zoukankan      html  css  js  c++  java
  • 密码硬编码(Password Management: Hardcoded Password)

    在对项目进行安全扫描时,发现一些密码硬编码问题,本文主要三个方面:1)什么是密码硬编码;2)密码硬编码的危害;3)密码硬编码的解决方案。

    一 什么是密码硬编码

     将密码以明文的形式直接写到代码中,就是密码硬编码。

    下边示例中,将用户名和密码直接写到代码中,就是硬编码。

    1 function connectionDatabase(url, userName, password) {
    2     // ....
    3 }
    4 
    5 connectionDatabase('./api', 'zhangsan', '1234567');

    二 密码硬编码的危害

    主要危害有2个方面:

    1)安全风险

    只要能拿到该代码的人(即使代码发布前做过编译或者混淆压缩,也能通过反编译等手段查看到源码),都能获取到该用户名和密码,导致安全风险;

    2)可维护性不好

    代码一旦发布上线,后续要修改该用户名和密码非常困难,需要更改源代码。

    三 密码硬编码的解决方案

    密码硬编码还没有绝对安全的解决方案,只能通过加大破解难度来提高安全性。

    最常用的方法是对密码进行模糊化(例如:要先经过hash处理再存储),并将密码存在外部资源文件中进行管理。

    示例:

    下边代码中就是获取配置文件中配置好的密码:

    下边代码中就是配置文件中加密过的密码:

    说明:经过上边的处理,并不是就绝对安全了,黑客高手也有手段破解。但相比直接明文方式加密,至少能解决安全软件扫描问题。

    四 参考资料&内容来源

    CSDN:https://blog.csdn.net/alimobilesecurity/article/details/51425629

    博客园:https://www.cnblogs.com/meInfo/p/9037584.html

    51CTO: http://netsecurity.51cto.com/art/201603/507142.htm

  • 相关阅读:
    个人附加作业
    个人作业3——个人总结(Alpha阶段)
    四则运算-单元测试
    英语学习APP案例分析
    基于GUI的四则运算
    基于控制台的四则运算
    对forEach、for-in还有es6的for-of的一些整理
    ASP.NET学习笔记5
    ASP.NET学习笔记4
    String类型的二进制数求和
  • 原文地址:https://www.cnblogs.com/zhaoweikai/p/10210881.html
Copyright © 2011-2022 走看看