大家好,欢迎来到IT知识分享网。
介绍
现代浏览器可以猜测响应的内容类型,即使它没有实际的content – type头。此外,即使Content-Type头已经就位,浏览器也不一定会遵从设定的Header的值。这种猜测是通过驻留在大多数浏览器中的一个称为mime -sniffing的固有函数实现的。尽管引入mime -sniffing是为了在缺乏头文件定义的情况下促进功能,但默认情况下启用的mime -sniffing可以促进发现某些条件下的跨站点脚本(XSS)。
假设一个web应用程序允许其用户上传图像文件,而这些文件又通过某个端点提供服务。如果它们没有任何Content-Type头,那么攻击者可能会上传包含恶意JavaScript代码的HTML文档来代替合法图像。一旦完成,下一步将是获取服务恶意HTML页面的直接URL,该页面将被传递给下一个不知情的受害者,最终导航到该页面。
影响及危害
缺少Content-Type报头,或者至少配置错误,会导致上面所写的XSS攻击。因此,影响的规模取决于web应用程序受到XSS攻击的能力和敏感性,而XSS攻击是由于Content-Type错误配置而启用的……
如何防护
为了防止由于无效或缺少Content-Type头而发生mime-sniffing错误,开发人员必须:
根据所服务的文件提供有效的Content-Type头
将X-Content-Type-Options报头设置为nosniff,这样浏览器就不会尝试猜测内容类型。
验证每个HTTP响应都包含一个Content-Type报头。 text/*, /+xml和application/xml内容类型也应该指定一个安全字符集(例如UTF-8, ISO-8859-1)。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/47102.html