我目前正在开发一个单页面应用程序,该应用程序与托管在不同服务器上并使用SSL保护的REST api进行通信.
我想知道是否应该在服务于单页应用程序的服务器上设置SSL证书,或者只是在后端服务器上设置它就足够了,考虑以下因素:
>单页面应用程序是用于在查询字符串中使用机密令牌重置密码链接的端点.这些链接通过电子邮件发送给我的用户.当用户点击链接时,他的浏览器会请求单页面应用程序.因此,GET请求未加密,查询字符串也不加密.
>该应用程序然后要求用户输入新密码,这个新密码通过ajax发送到后端,后端受SSL保护.
所以我认为值得为我的单页应用程序设置SSL以确保第一个考虑因素的安全性,因为GET请求因此未加密,查询字符串也不是敏感信息.但是,如果仅考虑第二个考虑因素,则不需要它,因为单页面应用程序和后端之间的连接是通过SSL完成的(因为单页面应用程序使用Ajax与通过SSL保护的端点进行通信) .
我对吗?还是完全偏离了?谢谢!
解决方法
你的直觉是正确的.第一种和第二种情况之间唯一有效的区别在于:(1)您将敏感信息(令牌)发送到前端服务器,(2)您正在向后端服务器发送敏感信息(密码).因此,由于您要向两者发送敏感信息,因此它们都需要通过SSL保护.
如果前端服务器不受SSL保护,则可能是攻击途径:
>攻击者在用户在查询字符串中发送重置令牌时MITM前端服务器,攻击者可以访问重置令牌.
>在真实客户端发送密码重置请求之前,攻击者会将密码重置请求发送到后端服务器.
>攻击者将新密码发送到后端服务器.密码重置为攻击者知道的密码.
在任何情况下,攻击者都不得破坏后端服务器的SSL以在前端服务器上实现此攻击.当然后端服务器将从用户接收密码,因此它也需要SSL.简而言之,为了防止中间人攻击,您需要为两台服务器提供SSL.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。