首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过HTTPS为单个页面应用提供服务的必要性

通过HTTPS为单个页面应用提供服务的必要性
EN

Stack Overflow用户
提问于 2015-09-25 01:38:51
回答 1查看 863关注 0票数 4

我目前正在开发一个单独的页面应用程序,该应用程序与托管在不同服务器上并受SSL保护的REST进行对话。

我想知道是否应该在为单个页面应用程序服务的服务器上设置SSL证书,或者仅仅在后端服务器上设置它就足够了,方法是考虑以下几点:

  1. 单页应用程序是一个端点,用于使用查询字符串中的机密令牌重置密码链接。这些链接是通过电子邮件发送给我的用户。当用户单击链接时,他的浏览器请求单个页面应用程序。因此,GET请求没有加密,查询字符串也没有加密。
  2. 然后,应用程序要求用户输入一个新密码,这个新密码通过ajax发送到后端,后端受SSL保护。

因此,我的看法是,值得为我的单页应用程序设置SSL,以确保第一个考虑的安全性,因为GET请求因此没有加密,查询字符串和令牌也不是敏感信息。但是,如果只考虑第二个考虑因素,就不需要这样做了,因为单页应用程序和后端之间的连接是通过SSL完成的(因为单页应用程序使用Ajax与通过SSL保护的端点通信)。

我说的对吗?还是完全偏离了方向?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-25 02:06:50

你的直觉是正确的。第一个和第二个场景之间唯一有效的区别是:(1)您向前端服务器发送敏感信息(令牌);(2)向后端服务器发送敏感信息(密码)。因此,因为您要向两者发送敏感信息,因此它们都需要使用SSL进行保护。

如果前端服务器不受SSL的保护,下面是一个可能的攻击途径:

  1. 攻击者MITMs前端服务器当用户在查询字符串中发送重置令牌时,攻击者获得对重置令牌的访问权。
  2. 在实际客户端发送密码重置请求之前,攻击者将密码重置请求发送到后端服务器。
  3. 攻击者向后端服务器发送新密码。将密码重置为攻击者知道的密码。

在任何步骤中,攻击者都不需要破坏后端服务器的SSL,就可以在前端服务器上完成此攻击。当然,后端服务器将从用户那里接收密码,所以它也需要SSL。简而言之,为了防止中间人的攻击,您需要为您的两个服务器提供SSL。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32773457

复制
相关文章

相似问题

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