如果我的网站是 HTTPS,是不是每次调用数据或静态页面也必须是 HTTPS?

Posted

技术标签:

【中文标题】如果我的网站是 HTTPS,是不是每次调用数据或静态页面也必须是 HTTPS?【英文标题】:If my web site is HTTPS does every call for data or a static page have to be HTTPS also?如果我的网站是 HTTPS,是否每次调用数据或静态页面也必须是 HTTPS? 【发布时间】:2015-01-28 10:03:36 【问题描述】:

我有一个正在考虑迁移到 HTTPS 的 Web api 应用程序。原因实际上只是我想隐藏用户名和密码的初始登录。

登录后,页面中的所有其他调用是否也需要使用 HTTPS?例如,我对 CSS 和脚本的调用是否需要通过 HTTPS 传输? WebAPI 调用怎么样?

【问题讨论】:

身份验证如何工作?基于 Cookie?消化?令牌? 【参考方案1】:

当从 HTTPS 页面引用 HTTP 内容时,一些用户代理会发出warnings about "mixed content" or "insecure content" to the user,其他可能会阻止内容(旧版本的 IE 会这样做)。 GitHub solved this issue using ngnix as reverse proxy, so it serves the static content as HTTPS.

如果您只关心身份验证,并且它是基于 cookie 的,您可以在 HTTPS 中进行身份验证,然后返回 HTTP。只要 cookie 未标记为 Secure,它将被共享。 Remember that both the GET request acquiring the login FORM and the POST call sending the login form should be HTTPS to be secure.

您可以在 HTTP 中使用该页面并在 HTTPS 中进行 AJAX 调用:Ajax using https on an http page。同样,如果身份验证表单也不安全,这可能也没用。

如果您的静态内容托管在 CDN 中,则 CDN 可能能够代理对您网站的请求并在需要时返回 HTTPS 内容。

静态内容为HTTP won't be cached for when you request the same content through HTTPS,反之亦然,所以基本上会下载两次。

同样相关,请查看这些7 myths about HTTPS,特别是神话#1。如果您担心安全性,也许完全切换到 HTTPS 是最好的决定。

【讨论】:

以上是关于如果我的网站是 HTTPS,是不是每次调用数据或静态页面也必须是 HTTPS?的主要内容,如果未能解决你的问题,请参考以下文章

为需要在我的网站上自动更新数据的每个页面制作许多 https websocket 服务器是不是很好?

使用javascript / jQuery将触摸事件应用于每次点击事件

配置数据存储在数据库中

Ajax 调用在 HTTPS 上被阻止 - Chrome 扩展

我的网站只有登录层上的 https。是不是可以为我的站点实施服务人员以实施 chrome 通知

iOS:如何知道 viewDidLoad 是不是被调用?