gpt4 book ai didi

ajax - 通过 HTTPS 服务单页应用程序的必要性

转载 作者:太空宇宙 更新时间:2023-11-03 12:48:47 25 4
gpt4 key购买 nike

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

我想知道我是否应该在为单页应用程序提供服务的服务器上设置 SSL 证书,或者是否只需在后端服务器上设置它就足够了,考虑以下因素:

  1. 单页应用程序是重置密码链接的端点,在查询字符串中带有 secret token 。这些链接通过电子邮件发送给我的用户。当用户单击链接时,他的浏览器会请求单页应用程序。因此,GET 请求未加密,查询字符串也未加密。

  2. 然后该应用会要求用户输入一个新密码,这个新密码会通过 ajax 发送到受 SSL 保护的后端。

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

我说的对吗?还是完全走偏了?谢谢!

最佳答案

您的直觉是正确的。第一种情况和第二种情况之间唯一有效的区别是,在 (1) 中,您将敏感信息( token )发送到前端服务器,以及 (2) 您将敏感信息(密码)发送到后端服务器。因此,由于您要向两者发送敏感信息,因此它们都需要通过 SSL 进行保护。


如果前端服务器没有受 SSL 保护,这里是一个可能的攻击途径:

  1. 当用户在查询字符串中发送重置 token 时,攻击者通过 MITM 访问前端服务器,攻击者获得对重置 token 的访问权限。

  2. 在真实客户端发送密码重置请求之前,攻击者将密码重置请求发送到后端服务器。

  3. 攻击者将新密码发送到后端服务器。密码被重置为攻击者知道的密码。

攻击者无需通过任何步骤破坏后端服务器的 SSL 即可对前端服务器发起攻击。当然后端服务器将从用户那里接收密码,所以它也需要 SSL。简而言之,为了防止中间人攻击,您的两台服务器都需要 SSL。

关于ajax - 通过 HTTPS 服务单页应用程序的必要性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32773457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com