설정 파일에 빈 비밀번호 사용
Empty Password in Configuration File
Last updated
Empty Password in Configuration File
Last updated
// bad: 설정 객체에 빈 password 사용
const mysql = require("mysql2/promise");
const config = {
host: "db.internal",
user: "app_user",
password: "", // 빈 비밀번호 - 인증 무력화
database: "app",
};
async function connect() {
const conn = await mysql.createConnection(config);
console.log("connected");
}
connect().catch(console.error);// good: Secret은 환경 변수/시크릿 매니저에서 로딩하고, 비어 있으면 시작 차단
const mysql = require("mysql2/promise");
function requiredEnv(name) {
const v = process.env[name];
if (!v || v.trim().length === 0) {
throw new Error(`Missing required secret: ${name}`);
}
return v;
}
const dbPassword = requiredEnv("DB_PASSWORD");
const config = {
host: process.env.DB_HOST || "db.internal",
user: process.env.DB_USER || "app_user",
password: dbPassword,
database: process.env.DB_NAME || "app",
};
async function connect() {
const conn = await mysql.createConnection(config);
console.log("connected");
}
connect().catch((err) => {
// 보안상 민감한 값은 로깅 금지
console.error("DB 연결 실패:", err.message);
process.exit(1);
});