X-Content-Type-Options
응답 헤더 Security

개요

X-Content-Type-Options: nosniff는 브라우저가 응답의 실제 내용을 들여다보고 Content-Type을 임의로 추측(MIME 스니핑)하는 동작을 끄는 보안 헤더입니다. 서버가 선언한 Content-Type을 그대로 신뢰하게 만듭니다.

유효한 값은 nosniff 하나뿐입니다.

자세히

브라우저는 과거 호환성을 위해 Content-Type이 부정확하다고 판단되면 내용 바이트를 보고 타입을 추론했습니다. 이 스니핑은 공격 표면이 됩니다. 예를 들어 이미지·텍스트로 서빙되는 사용자 업로드 파일에 HTML/JS가 숨어 있으면, 스니핑이 이를 text/html로 해석해 스크립트로 실행할 수 있습니다.

nosniff를 주면 브라우저는 선언된 타입을 신뢰합니다. 특히 script는 자바스크립트 계열 MIME 타입이 아니면 실행을 거부하고, stylesheet도 text/css가 아니면 적용을 거부합니다. 이로써 잘못된 타입의 리소스를 스크립트/스타일로 오용하는 공격을 차단합니다.

사용자 콘텐츠(업로드 파일·CDN 자산·API JSON)를 서빙하는 모든 응답에 정확한 Content-Type과 함께 nosniff를 붙이는 것이 표준 하드닝입니다.

문법

X-Content-Type-Options: nosniff

e.g. X-Content-Type-Options: nosniff

지시어 / 값

nosniff브라우저의 MIME 스니핑을 끄고 선언된 Content-Type을 그대로 신뢰하게 합니다.

실무 참고

관련 헤더

관련 상태코드

스펙 근거