“X-Content-Type-Options = nosniff”란 무엇입니까?


291

OWASP ZAP을 사용하여 로컬 호스트에서 침투 테스트를 수행하고 있으며이 메시지를 계속보고합니다.

Anti-MIME-Sniffing 헤더 X-Content-Type-Options가 'nosniff'로 설정되지 않았습니다.

이 검사는 Internet Explorer 8 및 Chrome에만 해당됩니다. Content-Type 헤더를 알 수없는 경우 각 페이지가 Content-Type 헤더 및 X-CONTENT-TYPE-OPTIONS를 설정하는지 확인하십시오.

이것이 무엇을 의미하는지 전혀 모르며 온라인에서 아무것도 찾을 수 없습니다. 나는 추가를 시도했다 :

<meta content="text/html; charset=UTF-8; X-Content-Type-Options=nosniff" http-equiv="Content-Type" />

그러나 나는 여전히 경고를 받는다.

매개 변수를 올바르게 설정하는 방법은 무엇입니까?

답변:


178

브라우저가 MIME 유형 스니핑을 수행하지 못하게합니다. Chrome / Chromium, Edge, IE> = 8.0, Firefox> = 50 및 Opera> = 13을 포함한 대부분의 브라우저는이 헤더를 준수합니다.

https://blogs.msdn.com/b/ie/archive/2008/09/02/ie8-security-part-vi-beta-2-update.aspx?Redirected=true

nosniff 값으로 새 X-Content-Type-Options 응답 헤더를 보내면 Internet Explorer가 선언 된 content-type에서 응답을 MIME 스니핑하지 못하게됩니다.

편집하다:

아, 그리고 그것은 HTML 메타 태그 옵션이 아닌 HTTP 헤더입니다.

참조 : http://msdn.microsoft.com/en-us/library/ie/gg622941(v=vs.85).aspx


22
당신은 그것을 언급해야합니다 for servers hosting untrusted content. 사용자 업로드의 컨텐츠를 표시하지 않는 웹 사이트의 경우이를 설정할 필요가 없습니다.
machineaddict

12
@machineaddict, 잘못되었습니다 . 스니핑은 컨텐츠의 신뢰 여부에 관계없이 발생합니다. security.stackexchange.com/a/11761/2379를 참조하십시오 . 미묘한 방식으로 사이트를 손상시킵니다. 놀라움이 마음에 들지 않으면 항상 스니핑을 비활성화하십시오.
Pacerier

33
"MIME 형식 스니핑이란 무엇입니까?"부분을 놓친 것 같습니다.
VarunAgw 2016 년

3
firefox이 헤더도 지원합니다 : developer.mozilla.org/en-US/docs/Web/HTTP/Headers/…
VasiliNovikov

헤더를 '요구'로 '요구'로 잘못 해석 될 수 있습니다. '존중'으로 변경했습니다.
찰리

135

기술

서버의 X-Content-Type-OptionsHTTP 응답 헤더를 nosniff설정 하면 암시 적 컨텐츠 유형을 사용하여 데이터를 추측하고 처리하기 위해 응답 헤더를 대체하는 데 사용되는 컨텐츠 또는 MIME 스니핑 을 사용하지 않도록 브라우저 에 지시합니다 Content-Type. 일부 시나리오에서는 이것이 편리 할 수 ​​있지만 아래 나열된 일부 공격으로 이어질 수도 있습니다. X-Content-Type-OptionsHTTP 응답 헤더 세트 를 리턴하도록 서버를 구성 nosniff하면 MIME 스니핑을 지원하는 브라우저가 서버 제공 서버를 사용 Content-Type하고 컨텐츠를 다른 컨텐츠 유형으로 해석하지 않도록 지시합니다 .

브라우저 지원

X-Content-Type-OptionsHTTP 응답 헤더는 크롬, 파이어 폭스와 에지뿐만 아니라 다른 브라우저에서 지원됩니다. 최신 브라우저 지원은 X-Content-Type-Options에 대한 MDN (Mozilla Developer Network) 브라우저 호환성 표에서 제공됩니다.

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options

공격에 대응

  1. MIME Confusion Attack (MIME 혼동 공격) 은 사용자가 악성 코드를 업로드 한 후 브라우저에서 실행하여 암시 적application/javascript대 명시적 등의 대체 컨텐츠 유형을 사용하여 파일을 해석 할 수 있도록하여 사용자 생성 컨텐츠 사이트를 통한 공격을 가능하게text/plain합니다. 이로 인해피싱의 일반적인 공격 경로 인 "드라이브 바이 다운로드"공격 이 발생합니다. 사용자 생성 콘텐츠를 호스팅하는 사이트는이 헤더를 사용하여 사용자를 보호해야합니다. 이것은 VeraCode OWASP에 의해 다음 과같이 언급됩니다.

    이로 인해 MSIE는 현명한 이름 지정으로 실행 가능 파일이나 동적 HTML 파일로 취급 할 수있는 사용자 업로드 콘텐츠를 제공하는 드라이브 바이 다운로드 공격 및 사이트에 대한 노출을 줄입니다.

  2. Content-Type스니핑을통해 무단 핫 링크 를 활성화 할 수도 있습니다. 보기와 같은 한 가지 목적을 위해 리소스가있는 사이트에 핫 링크를 연결함으로써 앱은 콘텐츠 유형 스니핑에 의존하고 서비스 약관에 위배 될 수있는 다른 목적을 위해 사이트에서 많은 트래픽을 생성 할 수 있습니다. 예를 들어 GitHub 는 그러나 실행하지는 않습니다.

    일부 성가신 사용자 (즉, 컴퓨터)는 원시 URL을 또는 태그 로 사용하여 원시보기 기능을 통해 자산을 "핫 링크"하도록 src했습니다 . 문제는 이것들이 정적 자산이 아니라는 것입니다. 원시 파일보기는 Rails 앱의 다른보기와 마찬가지로 사용자에게 반환되기 전에 렌더링되어야합니다. 이로 인해 성능이 크게 저하됩니다. 과거에 우리는 서버에 과도한 부담을 주므로 이런 방식으로 제공되는 인기있는 컨텐츠를 차단해야했습니다.<script><img>


누가 명시적인 내용 유형을 무시하고 추측 작업을 사용하기로 결정하는 것이 좋은 생각이라고 누가 생각 했습니까? omg ...
Sam Sirry

105
# prevent mime based attacks
Header set X-Content-Type-Options "nosniff"

이 헤더는 "마임"기반 공격을 방지합니다. 헤더는 브라우저가 응답 컨텐츠 유형을 대체하지 않도록 지시하므로 Internet Explorer가 선언 된 컨텐츠 유형으로부터 응답을 MIME 스니핑하는 것을 방지합니다. nosniff 옵션을 사용하여 서버가 컨텐츠가 text / html이라고 표시하면 브라우저는 해당 컨텐츠를 text / html로 렌더링합니다.

http://stopmalvertising.com/security/securing-your-website-with-.htaccess/.htaccess-http-headers.html


1
항상 그렇지 않습니까?! 브라우저가 "스마트 한"행동을하고 명시적인 컨텐츠 유형 헤더를 무시하려고 시도하는 것이 이상하다고 생각합니다.
샘 시리

25

Microsoft IIS 서버의 경우 web.config파일을 통해이 헤더를 활성화 할 수 있습니다 .

<system.webServer>
    <httpProtocol>
      <customHeaders>
        <remove name="X-Content-Type-Options"/>
        <add name="X-Content-Type-Options" value="nosniff"/>
      </customHeaders>
    </httpProtocol>
</system.webServer>

그리고 당신은 끝났습니다.


3
IIS에서 사용자 지정 헤더를 설정할 수도 있지만 구성 관리보다는 소스 제어가 가능하므로 솔루션이 더 좋습니다.
ajeh

9

X-Content-Type-Options 응답 HTTP 헤더는 서버가 Content-Type 헤더에 보급 된 MIME 유형을 변경하고 따라 가지 않아야 함을 나타 내기 위해 사용하는 마커입니다. 이를 통해 MIME 유형 스니핑을 거부 할 수 있습니다. 즉, 웹 마스터가 자신이하는 일을 알고 있다고 말하는 방법입니다.

구문 :

X- 컨텐트 유형 옵션 : nosniff

지시어 :

노니 프 요청 된 유형이 1. "style"이고 MIME 유형이 "text / css"또는 2. "script"가 아닌 경우 MIME 유형이 JavaScript MIME 유형이 아닌 경우 요청을 차단합니다.

참고 : nosniff는 "script"및 "style"유형에만 적용됩니다. 또한 이미지에 nosniff를 적용하면 기존 웹 사이트와 호환되지 않는 것으로 나타났습니다.

사양 :

https://fetch.spec.whatwg.org/#x-content-type-options-header

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.