1. JWT
로그인을 증명하는 토큰
인증에 필요한 정보를 암호화시킨 JWT 토큰으로 인터넷 표준 인증 방식
공개/개인 키를 쌍으로 사용
- Header, Payload, Signature
- 개인 보안성이 뛰어나다.(허나 키 자체의 중요한 개인 정보를 넣으면 안 된다.)
1. 기존 cookie랑 session을 통한 로그인 인증 처리
- 쿠키는 노출되기 때문에 민감 정보까지 노출된다.
- 세션은 저장소 문제가 발생하면 인증한다.
2. 장점
이미 토큰 자체가 인증된 정보이기 때문에 세션 저장소가 필수적으로 필요하진 않다.
3. 단점
JWT는 기본적으로 Claim에 대한 정보를 암호화하지 않다.
추가 개념: Salt
암호(비밀번호)를 해시(hash)하기 전에 추가하는 랜덤한 값
Salt를 추가해서 해시하는 경우
- 랜덤하게 만든 Salt: xyz890
- 합친 값: xyz890password123
- 이걸 해시: k9sd8e1...
→ 결과가 완전히 달라져서, 똑같은 비밀번호라도 Salt가 다르면 해시값이 다르게 나온다.
2. Next Auth
Next.js에서 쉽게 로그인(Authentication), 로그아웃(Logout), 세션(Session) 관리를 할 수 있게 도와주는
오픈소스 인증 라이브러리
- Google, Kakao, GitHub 같은 OAuth 로그인
- 이메일/비밀번호 로그인 (Credentials)
- 세션 유지, 로그인 상태 확인
이걸 아주 간편하게 만들어주는 게 NextAuth
3. Xss (Cross-site Scripting)
1. 저장형 XSS
공격자가 악성 스크립트를 서버에 저장하여 다른 사용자가 페이지를 방문할 때 자동으로 스크립트가 실행되게 하는 공격
- 게시판, 댓글, 프로필 등에서 발행
2. 반사형 XSS
악성 스크립트가 포함된 URL을 사용자가 클릭하면 스크립트가 실행되는 공격
- 서버에 저장되진 않고, 1회성으로 입력을 그대로 반환할 때 발생
- 검색창, 링크
3. Dom 기반 XSS
서버를 거치지 않고 클라이언트 측 스크립트가 위험한 입력을 DOM으로 주입
const params = new URLSearchParams(window.location.search);
const name = params.get("name");
document.getElementById("result").innerHTML = `안녕하세요 ${name}님`;
'LG 유레카 2기_프론트엔드' 카테고리의 다른 글
| [ LG U+ 유레카 2기 ] 합격 후기 & 대면반 분위기 & 앞으로의 계획 (3) | 2025.05.20 |
|---|---|
| [ Web-Security ] XHR → Fetch API (0) | 2025.04.28 |
| [ Web-security ] REST & CORS & JWT (0) | 2025.04.28 |
| [ DB ] Spring framework (1) | 2025.04.21 |
| [ GITHUB ] Repository 설정 및 PR 실습 예제 (0) | 2025.03.12 |