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

一 什么是密码硬编码

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

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

 function connectionDatabase(url, userName, password) {
// ....
} 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

密码硬编码(Password Management: Hardcoded Password)的更多相关文章

  1. Fortify漏洞之Dynamic Code Evaluation: Code Injection(动态脚本注入)和 Password Management: Hardcoded Password(密码硬编码)

    继续对Fortify的漏洞进行总结,本篇主要针对  Dynamic Code Evaluation: Code Injection(动态脚本注入) 和 Password Management: Har ...

  2. Password Management:Hardcoded Password 密码管理:硬编码密码

  3. Password Management:Password in Configuration File 密码管理:配置文件中的密码

  4. Key Management: Hardcoded Encryption key 密钥管理:硬编码加密密钥

  5. Fortify Audit Workbench 笔记 Password Management: Password in Configuration File(明文存储密码)

    Password Management: Password in Configuration File(明文存储密码) Abstract 在配置文件中存储明文密码,可能会危及系统安全. Explana ...

  6. Access denied for user '密码'@'192.18.0.0' (using password: YES)

    Failed to execute goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.6:generate (default- ...

  7. SpringCloud系列二:硬编码实现简单的服务提供者与服务消费者

    从本文开始,以一个电影售票系统为例讲解Spring Cloud 1. 版本 jdk:1.8 SpringBoot:2.0.0.RELEASE SpringCloud:Finchley.M8 2. 系统 ...

  8. Android安全开发之浅谈密钥硬编码

    Android安全开发之浅谈密钥硬编码 作者:伊樵.呆狐@阿里聚安全 1 简介 在阿里聚安全的漏洞扫描器中和人工APP安全审计中,经常发现有开发者将密钥硬编码在Java代码.文件中,这样做会引起很大风 ...

  9. 使用VideoToolbox硬编码H.264<转>

    文/落影loyinglin(简书作者)原文链接:http://www.jianshu.com/p/37784e363b8a著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. ======= ...

随机推荐

  1. 在php中如何用 union all统计总条数?

    网上使用union all 查询记录总条数的参考资料比较少,所以记录下来,以便有同样需求的人使用. $rs_num = Db::query("select sum(a.b) as num f ...

  2. android应用多线程守护让你非常难杀死它

    1.android 应用开启后启动一个服务 public class TestserviceActivity extends Activity { /** Called when the activi ...

  3. POJ-3134-Power Calculus(迭代加深DFS)

    Description Starting with x and repeatedly multiplying by x, we can compute x31 with thirty multipli ...

  4. MTU的概念,什么是路径MTU? MTU发现机制,TraceRoute(了解)

    1.MTU的概念      MTU即Maximum Transmission Unit 最大传输单元.它是指一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位). 2.路径MTU     ...

  5. Atitit.木马病毒 webftp 的原理跟个设计

    Atitit.木马病毒 webftp 的原理跟个设计 ftp木马的效果 文件传播 文件列表 文件内容查看 作者::  ★(attilax)>>> 绰号:老哇的爪子 ( 全名::Att ...

  6. Atitit.导出excel报表的设计与实现java .net php 总

    Atitit.导出excel报表的设计与实现java .net php 总结 1. 导出报表 表格的设计要素1 1.1. 支持通用list<Map>转换1 1.2. 对于空列是否输出1 1 ...

  7. Xilinx-7Series-FPGA高速收发器使用学习—概述与参考时钟篇

    xilinx的7系列FPGA根据不同的器件类型,集成了GTP.GTX.GTH以及GTZ四种串行高速收发器,四种收发器主要区别是支持的线速率不同,图一可以说明在7系列里面器件类型和支持的收发器类型以及最 ...

  8. js将用户上传gif动图分解成多张帧图片

    js将用户上传gif动图分解成多张帧图片 写在前面 工作中遇到一个这么一个需求:这是一个多图上传的场景,如果用户上传选择多张图片,则上传后直接展示多张图片,如果上传的图片是gif动图,则需要分解这张动 ...

  9. PHP修改memory_limit的三种办法

     PHP修改memory_limit的三种办法 2010-06-11 10:57:11 分类: 可能是分词程序的问题.只要搜索的字段达到十个汉字以上,就会出现诸如以下的错误 Fatal error: ...

  10. python 分支结构

    if 语句 if语句 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,可以用if语句实现: age = 20 if ag ...