코딩과로그

CORS는 왜 필요할까? (feat: CSRF 공격 방지) 본문

Devops

CORS는 왜 필요할까? (feat: CSRF 공격 방지)

피리음 2023. 3. 25. 02:11

CORS는 왜 필요할까요?

악의적인 사이트로부터의 공격을 방지하는데에 사용됩니다.

공격의 예시 중 하나로 CSRF 공격이 있습니다. Cross-Site Request Forgery 의 약자인데 일단 무슨 말인지는 차치하도록 하고 공격 예시를 통해 보도록 하겠습니다.

예를 들어, www.good-bank.com  이라는  은행 사이트가 있다고 해봅시다.

사용자는 해당 사이트를 통해서 자신의 은행 잔고 정보를 서버에 요청해 확인합니다.

그런데 만약 www.good-bank.com 와 똑같이 생긴  www.bad-bank.com  이라는 사이트가 있다고 해봅시다. 이 사이트는 마치 자신이 good-bank 사이트 인양 속여서 bank api 서버에 정보를 요청해서 얻어올 수 있지 않을까요?

이를 방지할 수 있는 정책으로 CORS 정책이 있습니다.

cors 정책을 적용하면 www.bad-bank.com에서 온 요청은 무시하고 www.good-bank.com 에서 온 요청만 선택적으로 획득할 수 있게 합니다. (엄밀히 말하자면 서버에서는 정보 전달은 해주지만 브라우저에서 막습니다.)

이를 통해서 www.bad-bank.comwww.good-bank.com 와 다르게 정보 전달을 받지 못하기 때문에 악의적 사이트를 통한 정보 탈취를 방지할 수 있습니다.

 

 

 

 

 

 

참조:

1. https://learn.microsoft.com/en-us/aspnet/core/security/anti-request-forgery?view=aspnetcore-7.0 

2. https://inpa.tistory.com/entry/WEB-%F0%9F%93%9A-CORS-%F0%9F%92%AF-%EC%A0%95%EB%A6%AC-%ED%95%B4%EA%B2%B0-%EB%B0%A9%EB%B2%95-%F0%9F%91%8F#%F0%9F%93%9C_%EB%8F%99%EC%9D%BC_%EC%B6%9C%EC%B2%98_%EC%A0%95%EC%B1%85%EC%9D%B4_%ED%95%84%EC%9A%94%ED%95%9C_%EC%9D%B4%EC%9C%A0