应用软件安全编程--26不要硬编码敏感信息

本文讨论了硬编码敏感信息的风险,如密码和服务器IP,以及如何通过规范方式(如从外部文件读取)存储,以减少代码管理和数据泄露。给出Java示例对比不规范和安全做法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

硬编码如密码、服务器 IP 地址、加密密匙这样的敏感信息,会将信息暴露给攻击者。任何一个可以访问类文件的人都可以对其进行反编译,然后得到敏感信息。因此,程序不能对敏感信息进行硬编码。对敏感信息进行硬编码会使代码管理变得更复杂。例如,在一个已部署的程序中,改变其硬编码密码需 要发布补丁。对敏感数据进行硬编码会向攻击者泄露信息。

对于不要硬编码敏感信息的情况,示例1给出了不规范用法(Java 语 言 )示例 。 示例2给出了规范用法(Java 语言)示例。

示例1:

class   IPaddress{

String   ipAddress   =   new   String("172.16.254. 1");

public  static  void  main(String[]  args)(

 

代码在一个 String常量中对服务器 IP 地址进行了硬编码。使用java 反编译工具(例如:javap  -c IPaddress) 进行反汇编,从而可以得到硬编码的服务器 IP 地址。

示例2:

class  IPaddress{

public static void main(String[] args) throws IOException {

char[]  ipAddress  =  new  char[100];

BufferedReaderbr = new BufferedReader(new InputStreamReader(new

FileInputStream("serveripaddress.txt")));

// Reads the server IP address into the char array,

// returns the number of bytes read

int   n   =br.read(ipAddress);

//     Validate     server     IP     address

// Manually clear out the server IP address

// immediately after use

for(inti=n- 1;i>=0;i-){

ipAddress[i]=0;

 

br.close();

 

 

代码通过一个安全目录下的外部文件得到服务器 IP 地址。通过使用后立即清除内存中的服务器 IP,可以防止进一步泄露。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奔跑的老人吴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值