从安全页面链接到不安全页面
Links to insecure pages from a secure page
我知道当初始 HTML 通过安全的 HTTPS 连接加载,但其他资源(例如图像、视频、样式表、脚本)通过不安全的 HTTP 连接加载时,会出现混合内容。这称为混合内容,因为正在加载 HTTP 和 HTTPS 内容以显示同一页面,并且初始请求通过 HTTPS 是安全的。
是否允许安全页面包含指向不安全的外部页面的链接?我说的是将用户从安全页面导航到新的但不安全的页面的链接。内容未在安全页面上检索,所以没关系,对吗?
是的,根据 Mixed Content specification,这是定义浏览器关于潜在混合内容的规范要求的规范,允许安全页面包含 links 到外部不安全的页面。
具体的相关要求在规范“Should fetching request be blocked as mixed content?”部分第一部分的第4步中说明,内容如下:
Given a Request request, a user agent determines whether the Request
request should proceed or not via the following algorithm:
Return allowed if one or more of the following conditions are met:
- §5.1 Does settings prohibit mixed security contexts? returns "
Does Not Restrict Mixed Security Contexts
" when applied to
request’s client.
- request’s url is a priori authenticated.
- The user agent has been instructed to allow mixed content, as described in §7.4 User Controls).
- request’s destination is "
document
", and request’s target browsing context has no parent browsing context.
Note: We exclude top-level navigations from mixed content checks, but user agents MAY choose to enforce mixed content checks on insecure
form submissions (see §7.5 Further Action).
换句话说,当用户关注 link 到外部页面时,该操作会启动顶级导航请求,并且根据上面的第 4 步,算法 returns allowed 对于这种情况,这意味着请求被允许。 (在规范定义为混合内容的情况下,算法改为 returns blocked,这意味着不允许请求。)
或者用不太规范但信息量更大的术语来说,浏览器会阻止对页面的任何嵌入式 子资源 的请求,这些请求不是从安全上下文提供的,但它们不会阻止 导航 到其他不安全的文档。
混合内容规范中隐含说明这些术语行为的相关部分位于 Introduction:
…when the encrypted and authenticated resource requests subresources (scripts, images, etc) over an insecure channel… Those resource requests result in a resource whose status is mixed
我知道当初始 HTML 通过安全的 HTTPS 连接加载,但其他资源(例如图像、视频、样式表、脚本)通过不安全的 HTTP 连接加载时,会出现混合内容。这称为混合内容,因为正在加载 HTTP 和 HTTPS 内容以显示同一页面,并且初始请求通过 HTTPS 是安全的。
是否允许安全页面包含指向不安全的外部页面的链接?我说的是将用户从安全页面导航到新的但不安全的页面的链接。内容未在安全页面上检索,所以没关系,对吗?
是的,根据 Mixed Content specification,这是定义浏览器关于潜在混合内容的规范要求的规范,允许安全页面包含 links 到外部不安全的页面。
具体的相关要求在规范“Should fetching request be blocked as mixed content?”部分第一部分的第4步中说明,内容如下:
Given a Request request, a user agent determines whether the Request request should proceed or not via the following algorithm:
Return allowed if one or more of the following conditions are met:
- §5.1 Does settings prohibit mixed security contexts? returns "
Does Not Restrict Mixed Security Contexts
" when applied to request’s client.- request’s url is a priori authenticated.
- The user agent has been instructed to allow mixed content, as described in §7.4 User Controls).
- request’s destination is "
document
", and request’s target browsing context has no parent browsing context.Note: We exclude top-level navigations from mixed content checks, but user agents MAY choose to enforce mixed content checks on insecure form submissions (see §7.5 Further Action).
换句话说,当用户关注 link 到外部页面时,该操作会启动顶级导航请求,并且根据上面的第 4 步,算法 returns allowed 对于这种情况,这意味着请求被允许。 (在规范定义为混合内容的情况下,算法改为 returns blocked,这意味着不允许请求。)
或者用不太规范但信息量更大的术语来说,浏览器会阻止对页面的任何嵌入式 子资源 的请求,这些请求不是从安全上下文提供的,但它们不会阻止 导航 到其他不安全的文档。
混合内容规范中隐含说明这些术语行为的相关部分位于 Introduction:
…when the encrypted and authenticated resource requests subresources (scripts, images, etc) over an insecure channel… Those resource requests result in a resource whose status is mixed