[기본 개념] 토큰 저장소: Browser Storage VS cookie
Browser Storage
장점
- CSRF 방지
단점
- XSS 공격 가능성 O
- 서버로 보내지는 request 수정이 필요해 SPA 제약이 생김
cookie
장점
- XSS 공격 방지 (
httpOnly
와 secure
옵션을 준다면)
단점
- CSRF 방지를 따로 구현해야 함
정리
- 토큰이 돈 등 주요한 정보를 관리하면 -> cookie에 저장하고
httpOnly
와 secure
옵션
- CSRF 보호를 구현하는 것에 대한 귀찮음만큼의 가치가 정보에 없으면 -> browser storage
추가 정보
CSRF
- Cross-site Request Forgery
- 사용자의 의지와 무관하게 공격자가 의도한 행위를 웹사이트에 요청하게 하는 공격
- 사용자가 로그인한 상태에서는 위조 공격도 믿을 수 있는 사용자가 보낸 것으로 판단해 공격에 노출된다.
- 대응 방안
1. CSRF 토큰 사용
- 재인증 요구
XSS
- Cross-site Scripting
- 웹사이트 관리자가 아닌 공격자가 웹 페이지에 악성 스크립트를 삽입하는 공격
- 웹 앱이 입력 값을 제대로 검사하지 않으면 나타난다.
- 공격자가 쿠키, 세션 등을 탈취하거나 비정상적 기능을 수행하게 할 수 있다.
- 대응 방안
1. 입력 값 검증용 필터 제작
- BBCode 사용(가벼운 마크업 언어)
- 쿠키의 보안 옵션 사용
- 콘텐츠 보안 정책 사용