如何在 node.js 中仅在 https 上执行网络 service/application

How can I perform the web service/application only on https in node.js

我有一个关于网络架构的小问题。当我构建一个网络时 service/application,我想让它只在 https 协议上完美运行。

首先,我通过 chrome 开发人员工具的网络会话分析了 google 的方法。在那里我发现,当一个 http 请求被发送到 google 时,该请求被重定向到同源的 https。

我认为这是一种可敬的方式。但我发现它有潜在的风险。当授权用户使用 google 时,他有一个会话。之后,他想深入另一个网站(例如雅虎)。他将通过直接在浏览器的地址栏中插入地址 'google.com' 来返回到 google。在这种情况下,如果用户没有关闭 google 会话,在重定向过程中,未加密的会话令牌将被发送到 google,因为重定向过程是在 http 协议上进行的。所以这个用户会暴露在MITM(man in the middle)攻击中。

所以我犹豫要不要使用 google 方法。有人有想法吗?

在会话 cookie 上设置 secure 标志。那么它将永远不会通过 HTTP 发送。