Access-Control-Expose-Headers가 필요한 이유는 무엇입니까?
이 기능이 추가 된 이유에 대한 구체적인 보안 이유를 찾고있었습니다. cors를 구현하고 반환되는 모든 헤더를 볼 수 있었지만 자바 스크립트를 통해 액세스 할 수 없었던 것은 일종의 WTH 순간이었습니다.
CORS는 CORS 이전의 동일 출처 전용 세계에서 가정 한 가정을 깨지 않는 방식으로 구현됩니다.
CORS 이전 세계에서 클라이언트는 교차 출처 요청 (예 : 스크립트 태그를 통해)을 트리거 할 수 있지만 응답 헤더를 읽을 수 없습니다.
CORS가이 가정을 깨지 않도록하기 위해 CORS 사양에서는 클라이언트가 헤더를 통해 해당 헤더를 읽을 수 있도록 명시적인 권한을 서버에 부여해야합니다 Access-Control-Expose-Headers
. 이러한 방식으로 승인되지 않은 CORS 요청은 CORS 이전 환경에서와 같이 작동합니다.
이것은 꽤 좋은 질문입니다. http://www.w3.org/TR/cors/#simple-response-header를 살펴보면 왜이 작업을 원하거나 필요한지 분명하지 않습니다.
CORS 사양은 클라이언트가 연결 유형을 요청하고 서버가이를 허용 할 것이라고 응답하는 사전 요청 핸드 셰이크가 있어야한다는 생각에 많은 비중을두고 있습니다. 따라서 이것은 그저 또 다른 측면 일 수 있습니다. .
기본적으로 content-length는 허용 된 헤더가 아니므로 동일한 문제가 발생했습니다 (나중에 WebDAV에 액세스해야하고 허용 가능한 매개 변수를 수정해야 할 때) .. CORS는 실제로 의미가 없습니다. ) 애초에 변덕스러워도 놀라지 않을 것입니다.
Access-Control-Expose-Headers가 필요한 이유는 다음과 같습니다.
Access-Control-Expose-Headers (선택 사항) -XMLHttpRequest 2 객체에는 특정 응답 헤더의 값을 반환하는 getResponseHeader () 메서드가 있습니다. CORS 요청 중에 getResponseHeader () 메서드는 단순 응답 헤더에만 액세스 할 수 있습니다. 간단한 응답 헤더는 다음과 같이 정의됩니다.
- 캐시 제어
- 콘텐츠 언어
- 컨텐츠 타입
- 만료
- 마지막 수정
- 프라 그마
클라이언트가 다른 헤더에 액세스 할 수 있도록하려면 Access-Control-Expose-Headers 헤더 를 사용해야합니다 . 이 헤더의 값은 클라이언트에 노출하려는 응답 헤더의 쉼표로 구분 된 목록입니다.
자세한 내용은 https://www.html5rocks.com/en/tutorials/cors/ 링크를 참조하십시오.
즐거운 코딩 !!
참고 URL : https://stackoverflow.com/questions/25673089/why-is-access-control-expose-headers-needed
'development' 카테고리의 다른 글
OnLocationChanged 콜백은 호출되지 않습니다. (0) | 2020.11.28 |
---|---|
GitHub 커밋 메시지의 그래픽 (0) | 2020.11.28 |
스크럼에서 스프린트와 반복의 차이점과 각 스프린트의 길이는 무엇입니까? (0) | 2020.11.28 |
SQL (DDL) 스크립트의 권장 위치는 어디입니까? (0) | 2020.11.28 |
Android의 키 가드는 무엇입니까? (0) | 2020.11.28 |