인터뷰 때 CORS 보안에 대해 질문을 받았는데 답변을 못 드렸는데 다들 조언을 구하고 싶습니다.
CORS는 서버 측에서 Access-Control-Allow-Origin을 설정합니다. *로 설정되지 않으면 지정된 도메인만 요청을 시작할 수 있다는 것이 사실이 아닌가요? 그렇지 않으면 브라우저에서 차단하게 됩니다. http 헤더는 위조될 수 있지만 Origin을 수동으로 설정하면 브라우저에 의해 차단됩니다. CORS의 취약점은 어디에 있습니까? 해결책은 무엇입니까? 감사합니다
https://developer.mozilla.org... 브라우저 호환성
반대로 JSONP와 교차하는 CORS가 더 안전한 크로스 도메인 방식이자 표준적인 크로스 도메인 방식이라고 생각합니다.
Access-Control-Allow-Origin은 요청을 허용하는 도메인 화이트리스트입니다. 이 도메인에 존재하는 경우에만 서버가 도메인 간 요청을 통합합니다. 화이트리스트가 적절하게 설정되면 CSRF 공격을 피할 수 있습니다.
이 질문에서는 Access-Control-Allow-Origin이 *인 경우 직면하는 문제를 고려해야 한다고 생각합니다.
*로 설정된 API는 일반적으로 잦은 요청이나 DDOS를 피하기 위해 키 확인을 위한 추가 단계가 있으며 요청 빈도와 횟수가 제한됩니다.
또한 CORS는 기본적으로 쿠키를 전송하지 않지만 Access-Control-Allow-Credentials가 true로 설정되면 허용될 수 있으며, 이로 인해 CSRF 공격의 위험이 발생할 수도 있습니다.