X-Content-Type-Options의 기능은 무엇입니까?

click fraud protection

보안 헤더는 브라우저에서 보안 제어를 각각 적용하는 웹 서버에서 설정할 수 있는 HTTP 응답 헤더의 하위 집합입니다. HTTP 헤더는 웹 요청 및 응답과 함께 전송되는 메타데이터 형식입니다. 보안 헤더 "X-Content-Type-Options"는 브라우저가 MIME 스니핑을 수행하는 것을 방지합니다.

참고: HTTP 헤더는 HTTP 전용이 아니며 HTTPS에서도 사용됩니다.

MIME 스니핑이란 무엇입니까?

데이터가 웹을 통해 전송될 때 포함된 메타데이터 중 하나는 MIME 유형입니다. Multipurpose Internet Mail Extensions 또는 MIME 유형은 파일 처리 방법을 나타내는 파일에 포함된 데이터 유형을 정의하는 데 사용되는 표준입니다. 일반적으로 MIME 유형은 선택적 매개변수 및 값이 있는 유형 및 하위 유형으로 구성됩니다. 예를 들어, UTF-8 텍스트 파일의 MIME 유형은 "text/plain; 문자 집합=UTF-8”. 이 예에서 유형은 "텍스트", 하위 유형은 "일반", 매개변수는 "문자 집합", 값은 "UTF-8"입니다.

파일의 잘못된 레이블 지정 및 잘못된 취급을 방지하기 위해 웹 서버는 일반적으로 MIME 스니핑을 수행합니다. 명시적으로 명시된 MIME 형식을 무시하고 대신 파일의 시작 부분을 분석하는 과정이다. 대부분의 파일 유형에는 파일 유형을 나타내는 헤더 시퀀스가 ​​포함됩니다. 대부분의 경우 MIME 유형이 정확하고 파일을 스니핑해도 차이가 없습니다. 차이점이 있는 경우 웹 서버는 선언된 MIME 유형이 아닌 파일을 처리하는 방법을 결정하기 위해 스니핑된 파일 유형을 사용합니다.

공격자가 PNG 이미지와 같은 파일을 업로드할 수 있지만 파일이 실제로 JavaScript 코드와 같은 다른 파일인 경우 문제가 발생합니다. 두 가지 텍스트 유형과 같은 유사한 파일 유형의 경우 이것이 너무 많은 문제를 일으키지 않을 수 있습니다. 그러나 완벽하게 무해한 파일을 대신 실행할 수 있다면 심각한 문제가 됩니다.

X-Content-Type-Options의 기능은 무엇입니까?

X-Content-Type-Options 헤더에는 "X-Content-Type-Options: nosniff" 값이 하나만 있습니다. 활성화하면 사용자의 브라우저에 MIME 유형 스니핑을 수행하지 않고 대신 명시적으로 선언된 값에 의존해야 함을 알립니다. 이 설정이 없으면 악성 자바스크립트 파일이 PNG 등의 이미지로 위장한 경우 자바스크립트 파일이 실행된다. X-Content-Type-Options를 활성화하면 파일이 유효한 이미지 형식이 아니기 때문에 로드에 실패한 이미지로 처리됩니다.

X-Content-Type-Options는 악의적인 파일이 실수로 제공될 가능성이 없기 때문에 전적으로 자사 리소스를 사용하는 웹 사이트에서는 특별히 필요하지 않습니다. 웹 사이트가 외부 또는 사용자 제출 리소스와 같은 타사 콘텐츠를 사용하는 경우 X-Content-Type-Options는 이러한 유형의 공격에 대한 보호 기능을 제공합니다.