我有一个站点A,它将模块嵌入到iframe B中。模块可能是其他域。 用户在A中有一个经过身份验证的会话,我希望B拒绝加载,除非用户在A中有一个有效的会话。除了用户与A进行了经过身份验证的会话之外,B不需要知道任何事情。没有会话数据需要。
目前,A和B都不支持HTTPS,但我想说服一旦我说服楼上的人购买SSL证书。
所以,我已经想到了两种完全不同的方案来以安全的方式实现这一点,但我不确定哪种方法会更好,所以我希望在这里得到一些反馈。 任何帮助表示赞赏!
?session=SESSION_ID
附加到B的网址A/verify?session=SESSION_ID
上升空间
缺点
上升空间
缺点
答案 0 :(得分:2)
选项3
A
生成随机哈希,并将其与会话ID(两个字段)一起存储在数据库表中。 A
将散列传递给B
的每个网址,例如“B /?hash = x”
A
检查哈希是否与数据库表中的任何一个匹配,并检查会话ID是否仍然经过身份验证(可能已注销或已过期),然后告诉B
它是否正常。与A/verify?hash=x
一样。
正如您所说,B
除了经过身份验证之外,不需要知道任何其他内容。
这样,在网址中不会传递任何会话ID,正如您所说,这不是理想的。