我们有2个Web应用程序,均使用HTTPS(仅限服务器端证书)和单点登录身份验证系统进行保护。在App1中,用户将单击一个链接,然后需要“向下钻取”到App2中的页面。它们共享相同的域和SSL证书,但实际上不是同一个应用程序。当App1将请求转发或重定向到App2时,它在请求中包含一个身份验证令牌,以便App2可以验证用户的身份。
App1知道用户有权查看哪些信息,将其称为帐户列表; App2无权访问此信息(至少目前不是)。有人建议App1也可以在请求中将授权帐户列表传递给App2。
我的问题是HTTPS是否保护有效负载并确保它仅由App1 / App2服务器生成?更具体地说,我担心的是,具有有效身份验证令牌的有效用户是否可以使用其他帐户构建自己的表单,并将其作为有效的HTTPS POST请求提交给App2服务器,从而获得对未授权帐户的访问权限? / p>
答案 0 :(得分:4)
不,仅凭HTTPS并不能为您提供所需的安全性。要了解其他人如何解决您所面临的问题,请查看以下链接:
它是关于使用SAML协议完成SSO。一般来说,如果安全性是您的一个严重问题,那么您将需要使用经过同行评审的解决方案(如SAML)而不是单点登录的DIY方法。您不需要使用SAML,但您应该尝试使用适用于您的环境的现有SSO解决方案。
为了“保证它是由App1 / App2服务器生成的” - 您可以对有效负载进行数字签名。这可以防止篡改,但可能无法阻止replay attacks - SSL可以帮助一些人,因为传输将被加密,但仍然可以进行重放攻击(可能是man in the middle attack)
答案 1 :(得分:0)
HTTPS提供安全的通信渠道。 但是你可以与魔鬼本人进行安全的沟通 :-)