ハードコードされたパスワード
ハードコードされたパスワード
概要
ハードコードされたパスワードや秘密情報は、ソースコード、バイナリ、バックアップ、ログから漏えいしやすくなります。
影響
一度漏えいすると、同じ秘密情報を使うすべての環境が侵害される可能性があります。
対策
シークレット管理ツールや保護された環境設定を使い、秘密情報をローテーションし、ソース管理に含めないようにします。
例
public Connection DBConnect(String url, String id) {
try {
String url = props.getProperty("url");
String id = props.getProperty("id");
conn = DriverManager.getConnection(url, id, "tiger");
} catch (SQLException e) {
System.err.println("...");
}
return conn;
}
public Connection DBConnect(String url, String id) {
try {
String url = props.getProperty("url");
String id = props.getProperty("id");
String pwd = props.getProperty("passwd");
...
byte[] decrypted_pwd = cipher.doFinal(pwd.getBytes());
pwd = new String(decrypted_pwd);
conn = DriverManager.getConnection(url, id, pwd);
} catch (SQLException e) {
System.err.println("...");
}
return conn;
}