# CORS는 멍청하다

> Clean Markdown view of GeekNews topic #18671. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=18671](https://news.hada.io/topic?id=18671)
- GeekNews Markdown: [https://news.hada.io/topic/18671.md](https://news.hada.io/topic/18671.md)
- Type: news
- Author: [ragus](https://news.hada.io/@ragus)
- Published: 2025-01-10T23:52:19+09:00
- Updated: 2025-01-10T23:52:19+09:00
- Original source: [kevincox.ca](https://kevincox.ca/2024/08/24/cors/?ref=dailydev)
- Points: 22
- Comments: 0

## Summary

CORS는 브라우저의 교차 출처 요청으로 인한 보안 문제를 해결하기 위한 임시방편으로, 요청 자체는 차단하지 않지만 결과를 읽는 것을 방지합니다. 효과적인 교차 출처 보안을 위해서는 암묵적 자격 증명을 제거하거나 명시적으로 허용하는 것이 중요하며, SameSite 쿠키와 같은 방법을 통해 자격 증명 사용을 제한할 수 있습니다. 브라우저는 교차 출처 자격 증명 문제를 해결하기 위해 다양한 방식을 탐구하고 있지만, CORS는 여전히 불완전한 솔루션으로 남아 있습니다.

## Topic Body

##### 1. CORS는 브라우저 설계 결함을 보완하기 위한 임시방편임을 이해하세요.  
- CORS(교차 출처 리소스 공유)는 교차 출처 요청의 암묵적 자격 증명으로 인한 보안 문제를 해결합니다.  
- 브라우저의 기본 동작은 사용자에게 XSRF 공격에 노출될 위험을 초래합니다.  
- CORS는 이러한 문제를 완화하려 하지만, 보안 범위에서 근본적인 한계를 가지고 있습니다.  
  
##### 2. CORS는 교차 출처 요청의 결과를 읽는 것을 방지하지만, 요청 자체는 차단하지 않습니다.  
- fun-games.example은 your-bank.example의 데이터를 읽을 수 없지만, 자금 이체와 같은 상태 변경 요청을 여전히 실행할 수 있습니다.  
- 이는 브라우저가 쿠키와 자격 증명을 기본적으로 처리하는 방식 때문입니다.  
  
##### 3. 효과적인 교차 출처 보안은 암묵적 자격 증명을 무시하는 것에서 시작됩니다.  
- 교차 출처 요청에서 쿠키와 유사한 자격 증명을 제거하거나 명시적으로 허용합니다.  
- `Sec-Fetch-*` 헤더를 활용하여 교차 출처 쿠키를 필터링하거나 제거하는 미들웨어를 사용합니다.  
  
##### 4. 명시적 자격 증명은 암묵적 자격 증명보다 안전한 대안입니다.  
- 쿠키 대신 인증 토큰에 `Authorization` 헤더를 사용합니다.  
- 명시적 자격 증명은 다른 사이트 간의 자격 증명 오용을 방지합니다.  
- 서버 렌더링 사이트에는 적합하지 않지만 API와 클라이언트 측 애플리케이션에는 최적의 방법입니다.  
  
##### 5. SameSite 쿠키를 구현하여 교차 출처 자격 증명 사용을 제한하세요.  
- 기본적으로 교차 출처 요청에 쿠키가 포함되지 않도록 `SameSite=Lax`를 사용합니다.  
- 더 엄격한 정책을 위해 `SameSite=Strict`를 선택하세요. 다만, 이로 인해 사용성(예: 교차 출처 탐색 후 로그아웃)에 영향을 줄 수 있습니다.  
  
##### 6. 간단하고 안전한 CORS 정책을 채택하세요.  
- 기본 정책: `Access-Control-Allow-Origin: *` 및 `Access-Control-Allow-Methods: *`는 익명 액세스만 허용합니다.  
- 이 정책은 교차 출처 요청의 암묵적 자격 증명을 비활성화하여 의도치 않은 자격 증명 오용으로부터 사이트를 보호합니다.  
  
##### 7. 보안을 위해 CORS 정책을 지나치게 복잡하게 만들지 마세요.  
- 지나치게 구체적으로 설정하면 잘못된 보안 감각을 만들 수 있습니다.  
- CORS 프록시 및 기타 해결 방법은 브라우저가 강제하는 정책을 우회할 수 있어 액세스 제한 노력을 무효화합니다.  
  
##### 8. 더 안전한 웹 기본값으로 이동하는 광범위한 움직임을 이해하세요.  
- 브라우저는 교차 출처 자격 증명 문제를 해결하기 위해 State Partitioning(파이어폭스), Tracking Prevention(사파리), CHIPS(크롬)과 같은 방식을 탐구하고 있습니다.  
- 이러한 이니셔티브는 출처 간 쿠키 및 자격 증명 공유를 제한하여 사용자 보안 및 개인 정보를 개선하려고 합니다.  
  
##### 9. CORS가 불완전한 솔루션임을 인식하세요.  
- CORS의 하위 호환성은 복잡성을 추가하면서도 기본 보안 문제를 완전히 해결하지 못합니다.  
- 브라우저는 이러한 문제를 완화하기 위해 새로운 접근 방식을 천천히 채택하고 있지만, 진행 상황은 일관되지 않습니다.

## Comments



_No public comments on this page._
