Next.js에서 비밀번호를 안전하게 암호화하는 방법에 대해 알아봅니다. 특히, bcrypt-edge 라이브러리를 사용하여 비밀번호 암호화 및 해시값 생성 과정을 단계별로 살펴보고, 직접 암호화 로직을 구현하는 위험성을 설명합니다. 또한, 추가적인 보안 강화 방안과 관련 자료들을 소개합니다.
edge-runtime 에선
npm install bcrypt-edge 설치후 사용해야합니다
next.js 가 처음이라 bcrypt 라이브러리 있는 줄 모르고 직접 비밀번호 암호화 + salt 구현해봤습니다
bcrypt 관련 링크
https://www.npmjs.com/package/bcrypt
이런식으로
const salt = generateSalt();
salt 선언 해주고 사용하면됩니다
salt 값을 db 에 저장해서 내가 정한 문자 순서 대로 잘라서 그 string 으로 SHA-256 알고리즘 으로 비밀번호 단방향 암호화
이렇게 하면 같은 비밀번호라도 다른 암호화된 비밀번호가 생성됨(bcrypt도 마찬가지)
직접 암호화 로직을 구현하는 것은 보안 취약성을 야기할 수 있습니다.
최신 보안 취약점 반영 누락: 암호화 알고리즘과 라이브러리는 지속적으로 업데이트되어야 합니다. 직접 구현한 로직은 최신 보안 취약점을 반영하지 못하여 공격에 취약할 수 있습니다.
이미 검증된 라이브러리를 사용하는 것이 보다 안전하고 효율적입니다.
'NEXT.JS' 카테고리의 다른 글
솔라피 API (2) | 2024.07.25 |
---|---|
R2 파일 다운로드 버그 (2) | 2024.07.16 |