【Java代码审计】硬编码密码篇
- 1.硬编码
- 2.案例
- 3.修复方案
1.硬编码
硬编码密码是指在系统中采用明文的形式存储密码,通常会导致严重的身份验证失败,这对于系统管理员而言可能很难检测到,一旦检测到,也很难修复。硬编码密码会造成密码泄露
- 开发人员的安全意识不强:将代码托管到github等互联网平台,可能会造成源代码泄露,任何有该代码权限的人都能读取此密码
- 程序员可以简单地将后端凭证硬编码到前端软件中:该程序的任何用户都可以提取密码。因为从二进制文件中提取密码非常简单,所以会对带有硬编码密码的客户端系统构成很大的威胁。
2.案例
例如,程序将用户名和密码硬编码到代码中:
String user = "admin";
String pass = "admin";
攻击者可以通过javap-c命令来访问反汇编的代码,反汇编的代码将包含所使用的密码值
3.修复方案
1、首先将数据库连接的用户名密码加密放入db.properties文件中
2、通过代码读取数据库配置文件,最后进行数据库的连接,这样就避免了硬编码产生的漏洞