密码硬编码(Password Management: Hardcoded Password)

2021年11月24日 阅读数:4
这篇文章主要向大家介绍密码硬编码(Password Management: Hardcoded Password),主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

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

一 什么是密码硬编码

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

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

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

二 密码硬编码的危害

主要危害有2个方面:编码

1)安全风险加密

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

2)可维护性很差spa

代码一旦发布上线,后续要修改该用户名和密码很是困难,须要更改源代码。.net

三 密码硬编码的解决方案

密码硬编码尚未绝对安全的解决方案,只能经过加大破解难度来提升安全性。3d

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

示例:

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

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

 

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

四 参考资料&内容来源

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