웹 서비스 런칭 전 반드시 점검해야 할 보안 수칙들입니다. DB가 털리더라도 유저의 원래 비밀번호를 절대 알아낼 수 없게 만드는 단방향 암호화(Bcrypt) 기법과, 출처가 다른 악성 도메인에서 들어오는 API 요청을 원천 차단하는 CORS 방어벽 설정입니다.
💡 핵심 비유: 믹서기(Hashing)와 출입증(CORS)
- Bcrypt 해싱: 딸기(비밀번호)를 믹서기에 넣고 갈아버리는 것과 같습니다. 딸기 주스(해시)를 보고 원래 딸기 모양을 복원할 수 없는 단방향 암호화입니다.
- CORS: 클럽 가드가 손님의 신분증을 보고 "우리 클럽 앱에서 온 요청 맞나요? 아니면 쫓아냅니다" 라고 출처(Origin)를 검사하는 것입니다.
🧱 CORS (교차 출처 리소스 공유) 동작 원리
🔒 Bcrypt 암호화 주요 개념
용어
설명
비유
단방향 암호화 (Hash)
A를 B로 바꿀 순 있지만, B를 보고 A가 뭔지 역추적하는 것이 수학적으로 불가능한 알고리즘
딸기(A)를 믹서기에 갈아 주스(B)로 만들기
솔트 (Salt)
해시 함수의 결과값이 항상 같으면 패턴을 유추할 수 있으므로, 원본 암호에 무작위 문자열(소금)을 추가해 갈아버리는 기법
딸기 주스에 랜덤한 맛의 조미료 넣기 (해커 혼란용)
라운드 (Cost Factor)
해싱을 몇 번 반복할 것인지 결정. 10이면 2^10(1024번) 반복. 해커의 무차별 대입(Brute Force) 공격 시간을 지연시킴
믹서기를 1000번 반복해서 돌리기
보안 기능 시뮬레이션
클라이언트의 출처(Origin)에 따라 서버가 CORS 차단을 수행하는 과정과, 비밀번호가 Bcrypt 알고리즘을 통해 복구 불가능한 해시로 변환되는 과정을 확인해 보세요.