iframe嵌入网站时提示(Cross-Origin Read Blocking)错误

1,703 阅读3分钟

当在 iframe 中嵌入一个网站时,如果该网站的服务器与您的服务器不在同一个域名下,可能会出现“Cross-Origin Read Blocking”错误。这是浏览器的一种安全机制,它会阻止跨域请求。

CORB是什么

CORB(Cross-Origin Read Blocking)是一种浏览器安全机制,旨在防止跨域读取攻击。CORB的发生时机是在以下两种情况下:

  1. 当浏览器试图使用 XMLHttpRequestFetch 等API读取跨域资源时,会发生CORB检测。如果跨域资源的 MIME 类型为 text/htmlapplication/xml 或者是 application/json 等这些可能包含敏感信息的类型,同时该资源返回的响应头缺少Access-Control-Allow-Origin头或者不被允许跨域,浏览器就会阻止该跨域请求并报错。

  2. 如果当前页面通过iframe、script等标签引用了跨域资源,并且该资源的 MIME 类型为 text/htmlapplication/xml 或者是 application/json 等可能包含敏感信息的类型,同时该资源返回的响应头缺少Access-Control-Allow-Origin头或者不被允许跨域,浏览器就会触发CORB机制阻止跨域资源的读取。

例如从 example.com 中的网页请求 images.example.net 中的图片,这种请求会被浏览器拦截,因为它可以用于恶意攻击。如果服务器没有设置允许跨域访问的头信息,浏览器就会出现"Cross-Origin Read Blocking"错误,阻止网页获取请求的资源。在这种情况下,用户需要寻找适当的解决方案来解决错误,例如使用代理、请求对方服务器设置允许跨域访问的头信息或者使用浏览器插件等方法。 Access-Control-Allow-Origin: *

MIME类型的作用和使用方法

MIME类型是指在互联网上标准化的用来标识文件格式的标准。它通常使用扩展名来表示文件格式,例如.html表示HTML格式,.jpg表示JPEG格式等等。在HTTP协议中,MIME类型用于标识HTTP响应消息中所传输的文件类型,以便浏览器能够正确地处理响应数据。

在Web开发中,MIME类型也常常用于指定浏览器在处理特定类型文件时所采用的默认行为。例如,对于HTML文件,浏览器会默认将其解析为文本并显示在页面上,而对于PDF文件,浏览器会默认将其下载或使用插件进行打开。

此外,MIME类型也是浏览器实现同源策略(Same-Origin Policy)的重要因素之一。同源策略是一种安全策略,用于限制来自不同源(域名、协议、端口)的脚本在浏览器中的交互行为,以防止恶意脚本对用户数据的窃取和篡改。浏览器通过比较资源的MIME类型和来源的MIME类型来判断是否允许跨域访问。如果资源的MIME类型与来源的MIME类型不同,浏览器会禁止跨域访问。