minstudio

보안 가이드 (비밀번호 해싱, CORS)

웹 서비스 런칭 전 반드시 점검해야 할 보안 수칙들입니다. DB가 해킹당하더라도 유저의 원래 비밀번호를 알아낼 수 없게 만드는 단방향 암호화(bcrypt)와, 해커의 이상한 도메인에서 들어오는 요청을 차단하는 CORS 방패 설정입니다.

🛡️ CORS (교차 출처 리소스 공유) 방어벽

😈
hacker.com
❌ 차단
🧱
내 Node.js 서버
✅ 통과
😊
my-frontend.com
const bcrypt = require("bcrypt");
const cors = require("cors");

// 1. CORS 설정 (내 프론트엔드 도메인만 접속 허용!)
app.use(cors({
    origin: "http://my-frontend.com",
    credentials: true
}));

// 2. 비밀번호 암호화 (해싱)
app.post("/register", async (req, res) => {
    const rawPassword = "mypassword123";
    
    // 비밀번호에 소금(salt)을 뿌려 복호화가 불가능한 난수로 으깸!
    const hashedPassword = await bcrypt.hash(rawPassword, 10);
    
    console.log(hashedPassword); // b$X8... 엄청 긴 암호문
    // DB에는 무조건 이 hashedPassword를 저장해야 함!!
});
실행 결과
보안 가이드 (비밀번호 해싱, CORS) | Minstudio