Search
🔵

bb7.1.1.1.3_3. title: CORS의 목적은 쿠키 악용 방지다.

생성
최종 수정
엔트리포인트
고유번호
고유번호 수동 지정
이전 첫 영구메모의
보충
고유번호 결합
🚀 prev note
♻️ next note
🚀 next note
관련 임시노트
2 more properties
상황
쿠키 포함 여부
Same-origin fetch
현재 도메인 쿠키 → XSS 방지 필요!
Cross-origin fetch (기본)
안 감
Cross-origin + credentials: 'include'
요청 도메인 쿠키 → CSRF 방지 필요!
쿠키를 사용하면 막을 수 있는 공격: XSS → 토큰 탈취
쿠키는 발급해준 도메인(solvewithit.us)으로 갈 때만 자동으로 붙음.
다른 origin으로 보낼수가 없음!
쿠키를 사용하면 막을 수 없는 공격
XSS → 토큰 악용
사용자가 당신의 사이트(frontend.com)에 로그인 상태 → 쿠키 보유
해커가 당신의 프론트엔드(hegemony.frontend.com)에 자바스크립트를 심음.
브라우저에서 다음 JS를 실행함 → 동일한 도메인이므로 solvewithit.us 쿠키 붙임.
fetch('https://hegemony.solvewithit.us/api/memo/123', { method: 'DELETE' })
Python
복사
내 데이터가 모두 삭제됨!
CSRF → 토큰 악용: CORS를 사용하면 막을 수 있음!
사용자가 당신의 사이트(frontend.com)에 로그인 상태 → 쿠키 보유
사용자가 해커가 만든 미끼 사이트(winner-event.com)에 접속함.
그 사이트에는 보이지 않는 이미지가 숨겨져 있음. <img src="https://hegemony.solvewithit.us/api/memo/delete_all" style="display:none">
브라우저는 이미지를 불러오기 위해 저 주소로 요청을 보내며 solvewithit.us 도메인의 쿠키를 자동으로 붙임.
내 데이터가 모두 삭제됨!
CORS를 사용하면 막을 수 있음
브라우저 제조사(Google, Apple, Microsoft 등)은 "절대 자바스크립트로 조작할 수 없는 금지된 헤더(Forbidden Headers)" 목록을 만들어 두었고, OriginReferer가 그 목록의 최상단에 있음.
parse me : 언젠가 이 글에 쓰이면 좋을 것 같은 재료을 보관해 두는 영역입니다.
1.
None
from : 과거의 어떤 원자적 생각이 이 생각을 만들었는지 연결하고 설명합니다.
supplementary : 어떤 새로운 생각이 이 문서에 작성된 생각을 뒷받침하는지 연결합니다.
1.
None
opposite : 어떤 새로운 생각이 이 문서에 작성된 생각과 대조되는지 연결합니다.
1.
None
to : 이 문서에 작성된 생각이 어떤 생각으로 발전되거나 이어지는지를 작성하는 영역입니다.
1.
None
ref : 생각에 참고한 자료입니다.
1.
None