WEB安全第九课 非HTML类型文件 之一 纯文本文件 |
除了HTML文档,常用的Web浏览器还可以识别和显示其他若干格式的文件;而浏览器支持的文档类型也只会越来越多。
因为某些文档格式具有强大的脚本能力,以及浏览器处理这些内容时的各种别扭古怪机制,所以本章我们要对浏览器原生支持的这些输入类型详加研究。 在非HTML文档里,浏览器能识别的最平淡无奇的类型大概非纯文本文件莫属了。在浏览器的呈现状态下,纯文本文件完全是原样显示,通常来说并没有什么字体格式,除了有可能会需要根据编码字符集进行显示,基本上也完全不会改变原有的数据样式。 🤳🌧🥣♻🦉 在HTTP响应里,如果带有Content-Type:text/plain响应头,该页面就会被浏览器视为纯文本文件。除IE浏览器以外的其他各种浏览器里,在收到没有头域的HTTP/0.9响应和缺少Content-Type头域的HTTP/1.X响应时,也会默认回退为纯文本显示状态;在这两种情况下,如果其他的猜测式内容检测都没有结果,就默认以纯文本格式显示了(但IE浏览器会无条件地回退为以HTML格式显示,这反倒是吻合Tim Berners-Lee原本的协议草案)。 为了方便开发人员,大多数浏览器都会自动地把若干种MIME类型文件(如application/javascript)及其各种变种还有text/css类型全都映射为纯文本文件。但有趣的是,在RFC 4627里给JSON 响应设定的application/json 类型,却不在此列(可能因为很少在实际场合碰到这种类型)。 💪🧳🍒❗🐻 没有专门针对纯文本显示的安全问题。但换而言之,因为其他浏览器组件和第三方代码中有许多差劲的设计,即使这种看起来无害的非HTML格式也有被误当成其他格式解析的风险,譬如被当成HTML格式。尤其值得引起重视的是攻击者能控制的纯文本,因为它们的布局往往完全不受限,所以特别容易被利用,会被误认作其他的格式。
帖子热度 9909 ℃
|
|
希望你们能用功读书,不要像我只能靠脸混吃混喝。#t201:
|