MIMEã¹ãããã£ã³ã° ãšã¯ïŒ
- ãã©ãŠã¶ããã¡ã€ã«ã®å é ãã€ããèŠãŠãContent-Typeãšã¯ç°ãªãã¿ã€ããšããŠè§£éããåäœ
- æ»æè ãããã¹ããç»åã«èŠããããHTMLãJavaScriptãä»èŸŒã¿ãXSSæ»æã«æªçšã§ãã
- X-Content-Type-Options: nosniff ããããŒãä»ããããšã§ã¹ãããã£ã³ã°ã鲿¢ã§ãã
- äž»èŠãã©ãŠã¶ã¯nosniffããããŒã«å¯Ÿå¿ããŠããããµãŒããŒåŽã§èšå®ããã®ããã¹ããã©ã¯ãã£ã¹
MIMEã¹ãããã£ã³ã°ã£ãŠäœãªã®ïŒãã¡ã€ã«ã®åããå ãã®ïŒ
é¢çœã衚çŸã ãã©ãå®éã«ã¯ãã©ãŠã¶ããã¡ã€ã«ã®äžèº«ãèŠããŠãããã¯æ¬åœã¯äœã®ãã¡ã€ã«ã ããïŒãã£ãŠå€å®ããåäœã®ããšã ãããµãŒããŒããããã¯ããã¹ãã§ããã£ãŠèšã£ãŠãããã©ãŠã¶ãäžèº«ãèŠãŠããããããHTMLãããªãïŒãã£ãŠåæã«å€æãã¡ãããã
ãªãã§ãã©ãŠã¶ããããªããšããã®ïŒãµãŒããŒã®èšãããšãä¿¡ããã°ããã®ã«ïŒ
æã¯ãµãŒããŒã®èšå®ãéã§ãContent-TypeããããŒãæ£ããä»ããªããµãŒããŒããããããã£ããã ãã ãããã©ãŠã¶ãããµãŒããŒã®æ å ±ã ãããä¿¡çšã§ããªããªãèªåã§ç¢ºèªããããã£ãŠèŠªåå¿ã§ãã£ãŠãããã ããã§ããã®èŠªåå¿ãã»ãã¥ãªãã£ããŒã«ã«ãªã£ã¡ãã£ããã
ã©ããªæ»æã«äœ¿ãããã®ïŒ
ããšãã°æ»æè ã <script>alert('XSS')</script> ãšããã³ãŒããå«ããã¡ã€ã«ãç»åãšããŠã¢ããããŒããããšããããµãŒããŒã¯ãããã¯ç»åã§ããã£ãŠContent-Typeãä»ãããã©ããã©ãŠã¶ãã¹ãããã£ã³ã°ããŠãäžèº«ã¯HTMLã ãã£ãŠå€æãããšãã¹ã¯ãªãããå®è¡ãããŠXSSæ»æãæåãã¡ãããã
ãããïŒã©ããã£ãŠé²ãã®ïŒ
ãµãŒããŒã®ã¬ã¹ãã³ã¹ã« X-Content-Type-Options: nosniff ãšããããããŒãä»ããã ãã§OKã ããããããããšãã©ãŠã¶ã¯ããµãŒããŒãèšãéãã®Content-Typeã§è§£éããŸããèªåã§ã¯æšæž¬ããŸãããã£ãŠåäœã«ãªããã
ããããŒ1ã€ä»ããã ãã§è§£æ±ºãããªããŠç°¡åãªãã ãïŒ
ãããªãã ããã æ³šæç¹ããã£ãŠãnosniffãä»ããå Žåã¯Content-Typeèªäœãæ£ããèšå®ããŠããå¿ èŠãããããããšãã°JavaScriptãã¡ã€ã«ã«ééã£ãContent-Typeãä»ããŠãããšãnosniffã®ããã§ä»åºŠã¯ã¹ã¯ãªãããšããŠèªã¿èŸŒãŸããªããªã£ãŠæ©èœãå£ããããšããããã
æ£ããèšå®ããã®ã倧äºãªãã ããæè¿ã®ãã©ãŠã¶ã§ãã¹ãããã£ã³ã°ã£ãŠèµ·ããã®ïŒ
äž»èŠãã©ãŠã¶ã¯å¹Žã ã¹ãããã£ã³ã°ã®ç¯å²ãçããŠããŠãç¹ã«scriptãstyleã®ã³ã³ããã¹ãã§ã¯nosniffãªãã§ãã¹ãããã£ã³ã°ããªãæ¹åã«é²ãã§ããããã§ãWHATWGã®MIME Sniffing仿§ã§ã¯äŸç¶ãšããŠã¹ãããã£ã³ã°ã®ã¢ã«ãŽãªãºã ãå®çŸ©ãããŠããŠãå®å šã«ãªããªã£ããããããªããã»ãã¥ãªãã£ããããŒã®èšå®ã¯ãã£ãŠããã«è¶ããããšã¯ãªãã