node.js - 如何使用 node.js 加密网页的一部分

标签 node.js ssl encryption https

我正在开发 node.js 应用程序。它展示了我一个 friend 的艺术。除了一些一般信息和大量图片外,它还包括一个联系表,供那些想就他的工作与他联系的人使用。我想加密联系页面以保护通过表单发送的个人数据,但不加密页面的其余部分以减少页面的加载时间。
我已经设法创建了一个加密我的整个网站的 HTTPS 服务器。但我只想为联系页面建立一个加密连接。 有谁知道如何实现?
我想到的一种解决方案是创建两个 node.js 服务器。一台 HTTP 服务器和一台 HTTPS 服务器,然后在 HTTP 服务器上运行主页,在 HTTPS 服务器上运行联系页面。联系页面的链接将包含 https。类似于:“https://www.domain.com/contact ”。
但不知何故,这似乎不是正确的方法,所以我希望有人有更好的解决方案。

感谢您的帮助!

最佳答案

认为 HTTPS 的性能不如普通 HTTP 的观点是一个需要破灭的神话。

  • 在现代系统上,SSL/TLS 的开销不到 CPU 的 1%。事实上,通过像 SPDY 这样的优化,您可能会发现 TLS 安全连接实际上比普通 HTTP 执行更好。我敢打赌,在现实中,您不会注意到任何性能上的负面差异。

  • 另一个常见的误解是浏览器不会缓存通过 HTTPS 传送的资源。这是错误的。 All browsers cache HTTPS content默认情况下。

  • Google now ranks all-HTTPS sites higher而不是普通的 HTTP。

通过所有 HTTPS 你失去的唯一一件事就是中间缓存代理,但老实说我不会为此失眠,除非你知道你的网站的用户在一个链接相对较慢的网络上并且本地缓存代理。否则,这不是真正的问题。

与 TLS 相关的开销可以忽略不计。没有理由不通过 HTTPS 为您的整个网站提供服务。


一旦通过 HTTPS 提供所有内容,您仍应运行一个 HTTP 服务器来发出永久重定向。最简单的做法是运行一个单独的 Express 应用程序:

var http = express();

http.use(function(req, res){
    res.redirect(301, 'https://mydomain.com' + req.url);
});

http.listen(80);

您的 HTTPS 服务器还应该启用 HSTS .

app.use(function(req, res, next) {
    res.set('Strict-Transport-Security', 'max-age=31536000');
    next();
});

关于node.js - 如何使用 node.js 加密网页的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27116114/

相关文章:

node.js - 从 NodeJS 执行 cygwin 命令

javascript - SSL & JQuery = 没有挂锁/为什么?

java - 在java中验证C#中的rsa签名

c# - 如何从 C# 客户端创建 Always Encrypted 列加密 key

objective-c - Objective-C (Mac) 中的 RSA 加密

javascript - 根据 session ID 创建对象变量

javascript - Accounts.onCreatedUser 的奇怪错误

node.js - 无法生成迁移

javascript - JS 在 Rails 中无法在 SSL 下工作

ssl - Golang : http2 and TLS handshake errors