9 月 13 日,2025 Inclusion・外滩大会「开源嘉年华」正在限量报名中! 了解详情
写点什么

Internet Explorer 更改 MIME 处理方式以提高安全性

  • 2010-10-27
  • 本文字数:733 字

    阅读完需:约 2 分钟

来自 Web 服务器的每一个文件都有对应的 MIME 类型(也称为 content-type),描述文件内容的属性,比如图片、文件、应用等。最近,IE 开发经理 Eric Lawrence 在 IE 官方博客中就 MIME 处理方式的变化和安全性做了详细解释。

以前,某些 HTML 元素(特别是 Link 和 Script)不会验证 Web 服务器提供的 MIME 类型。例如,即使 Script 的 src 属性指向一个声明为 text/plain 类型的文件,浏览器也会运行 Script 脚本。Eric 强调这种方式存在安全隐患:

这会导致一些安全漏洞,特别是 Link 元素。 比如这样一种攻击,恶意网站包含一个指向另一网站 HTML 内容的 Link 引用。如果 HTML 内容包含常见字符,那么可能会被恶意网站的页面脚本访问。这种信息泄露会导致跨网站请求伪造和其他攻击(详见 Carnegie-Mellon 大学的一篇论文)。

在最近发布的一个安全更新中,微软开发团队修改了IE6/7/8 的CSS 处理方式——阻止所有跨源样式表(cross-origin stylesheet)除非它们声明了正确的HTTP 相应头: Content-Type: text/css,这种保护措施可以确保 Link 和 @IMPORT 不会成为窃取其他网站内容的帮凶。

对于 IE 9 来说,除了修复以上问题,在 MIME 处理方面还包括了三个重要的安全性变化:

  1. 在 IE 9 标准模式下,同源样式表也必须采用正确的 text/css 类型,否则会被忽略。
  2. 如果服务器端指定 X-Content-Type-Options: nosniff,那么 Script 元素将拒绝错误的 MIME 类型响应,在这种情况下正确的 MIME 类型是 [“text/javascript”、“application/javascript”、“text/ecmascript”、“application/ecmascript”、“text/x-javascript”、“application/x-javascript”、“text/jscript”、“text/vbscript”、“text/vbs”]。
  3. 采用text/plain类型传输的文件,IE 不会主动将其判定成另一类型。
2010-10-27 01:082323
用户头像

发布了 501 篇内容, 共 277.7 次阅读, 收获喜欢 63 次。

关注

评论

发布
暂无评论
发现更多内容

应对ChatGPT,中国AI需要这三种能力

脑极体

百度 飞桨 文心

对比开源丨Prometheus 服务多场景存储压测全解析

阿里巴巴云原生

阿里云 开源 云原生 Prometheus

统一观测丨使用 Prometheus 监控云原生网关,我们该关注哪些指标?

阿里巴巴云原生

阿里云 云原生 Prometheus 云原生网关

在线头脑风暴软件Mural及其竞品分析

hongfei

思维导图 工具软件 头脑风暴

责任链和策略设计模式-基于Java编程语言

京东科技开发者

Java spring 代码规范 京东云 京东技术

前端标准化之旅

京东科技开发者

前端 代码规范 京东云 京东技术

Portraiture2023最新版本下载安装图文教程

茶色酒

Portraiture Portraiture4

建议收藏,轻松搞懂区块链!

蔡农曰

比特币 区块链 后端 比特币区块链

LeetCode:240. 搜索二维矩阵 II,直接查找,详细注释

Lee Chen

JavaScript 算法 LeetCode

快速制作一个chrome插件

JYeontu

chrome Vue chrome扩展 Chrome插件

会声会影2023官方正式版本功能介绍

茶色酒

会声会影2023

FL Studio最新发布21中文正式版本下载

茶色酒

FL Studio 21

面试官:限流算法有哪些?

王磊

java面试

Python设置显示屏分辨率

Python 分辨率

ReactDOM.render在react源码中执行之后发生了什么?

flyzz177

React

CnosDB成为首个产品支持SQLancer的云原生时序数据库

CnosDB

时序数据库 开源社区 CnosDB 工程师有话说

信源分类及数学模型

timerring

信息 信息论 信息论与编码

云计算未来 5 年发展方向大盘点

亚马逊云科技 (Amazon Web Services)

人工智能

架构误区系列13:令人迷惑的继承

agnostic

继承

架构实战营10期-作业7

炮仗

2023-02-19:请用go语言调用ffmepg,输出视频文件信息。

福大大架构师每日一题

golang ffmpeg 福大大

React Context源码是怎么实现的呢

flyzz177

React

JavaScript刷LeetCode心得

js2030code

JavaScript LeetCode

用javascript分类刷leetcode17.栈(图文视频讲解)

js2030code

JavaScript LeetCode

拆分电商系统为微服务

Geek_7d539e

中文技术文档的写作规范参考

面向工资Coding

React源码解读之React Fiber

flyzz177

前端工程师leetcode算法面试必备-简单的二叉树

js2030code

JavaScript LeetCode

「 Java基础-链式调用 」Java开发中如何让你的代码看起来更优雅?试试链式调用?

小刘学编程

Java 设计模式 建造者模式

产品团队业务思维的重要性

Bruce Talk

敏捷 Agile

ChatGPT入门案例|商务智能对话客服(三)| 社区征文

TiAmo

openai ChatGPT

Internet Explorer更改MIME处理方式以提高安全性_Java_崔康_InfoQ精选文章