类型: 安全缺陷
程序中采用硬编码方式处理手机号码,一方面会降低系统安全性,另一方面不易于程序维护。
public class UserDAO {
private static Map<Integer, User> users = new LinkedHashMap<Integer, User>();
//...
static {
users.put(1001, new User(1001, "韩信", 22, "18944564562", "hanxin@126.com"));
users.put(1002, new User(1002, "张良", 30, "18343256433", "zhangliang@163.com"));
users.put(1003, new User(1003, "萧何", 27, "18945455665", "xiaohe@sina.com"));
// ...
}
// 用户信息的增删改查方法
// ...
}
public class User {
private int id;
private String name;
private int age;
private String tel;
private String email;
public User() {}
public User(int id, String name, int age, String tel, String email) {
this.id = id;
this.name = name;
this.age = age;
this.tel = tel;
this.email = email;
}
// Getter and Setter
// ...
}
在上面的源码片段中,程序直接将用户的手机号码等个人信息以硬编码的方式进行存储,这样做会让数据与程序直接绑定,提高了系统的耦合性,使得系统和数据的维护变得困难。同时,如果对程序的执行文件做反编译操作,很容易就能够得到雇员的真实信息,导致敏感数据泄露,大大降低了系统的安全性。