首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用node.js加密网页的部分内容

如何用node.js加密网页的部分内容
EN

Stack Overflow用户
提问于 2014-11-24 23:27:21
回答 1查看 137关注 0票数 0

我正在开发一个node.js应用程序。它展示了我朋友的艺术。除了一些一般的信息和许多照片,它还包括一个联系形式的人谁想联系他的工作。我希望加密联系人页,以保护通过表单发送的个人数据,但将页面的其余部分保持未加密,以减少页面的加载时间。

我已经成功地创建了一个HTTPS服务器来加密我的整个网站。但我只想为联系页面建立一个加密连接。有人知道如何实现这一点吗?

我想出的一个解决方案是创建两个node.js服务器。一个HTTP服务器和一个HTTPS服务器,然后运行HTTP服务器上的主页和HTTPS服务器上的联系人页。然后,指向联系人页面的链接将包括https。有点像:"https://www.domain.com/contact“。

但不知怎么的,这感觉不像是正确的方式,所以我希望有人有一个更好的解决方案。

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-25 01:06:08

认为HTTPS的性能不如普通HTTP的概念是一个需要消亡的神话。

  • 在现代系统中,SSL/TLS的开销小于CPU的1%。事实上,通过像SPDY这样的优化,您可能会发现TLS保护的连接实际上比普通HTTP执行得更好。我愿意打赌,在现实中,你不会注意到任何负面的表现差异。
  • 另一个常见的误解是浏览器不缓存通过HTTPS交付的资源。这是假的。默认情况下是所有浏览器都缓存HTTPS内容。
  • Google现在对所有HTTPS站点进行了更高的排名。比普通HTTP。

所有HTTPS的唯一损失就是中间缓存代理,但老实说,除非您知道站点的用户使用的是相对较慢的链接和本地缓存代理,否则我不会因此而失眠。否则,这并不是真正的问题。

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

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

代码语言:javascript
复制
var http = express();

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

http.listen(80);

您的HTTPS服务器也应该启用HSTS

代码语言:javascript
复制
app.use(function(req, res, next) {
    res.set('Strict-Transport-Security', 'max-age=31536000');
    next();
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27116114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档