DNB*_*ims 5 javascript security authentication bookmarklet
我希望我的bookmarklet要求用户登录.这是一个想法......我为用户创建了一个iframe登录,并显示了a/c信息.但我想从服务器获取一些信息,例如,我想知道用户是否已将此页面添加到我的服务器.所以,我想做一个ajax调用,但由于相同的源策略,我不能通过ajax来实现.那么,我如何从iframe获取信息?
故事是这样的:
用户网站 - >用户点击书签 - >如果登录 - >显示'添加到收藏夹'按钮 - >用户点击添加到收藏夹按钮,将网址提交给服务器,重新加载服务器.
用户网站 - >用户点击书签 - >如果没有记录 - >显示登录按钮 - >登录成功 - >按以前的方式执行流程
用户网站 - >用户点击书签 - >如果记录 - >检查网站是否已添加到服务器上 - >没有收藏夹按钮
如您所见,只有iframe存储登录用户的信息.
你所做的事情是不可能的,因为它违反了原始继承规则。这样想吧。如果您可以从这种方式的另一个网站获取信息,那么您可以阅读CSRF 令牌,或从某人的 Gmail 帐户中读取其电子邮件。
说到 CSRF,大多数登录只是一个带有用户名/密码的简单帖子。您在网站上构建一个<form>与登录所需的 POST 请求相同的简单内容。使用 JavaScript,您可以调用.submit()表单,该表单会将浏览器重定向到新经过身份验证的会话。事实上,这就是基于 POST 的 CSRF 漏洞的工作原理(尽管通常在 CSRF 攻击中,您假设浏览器已经经过身份验证。)。
当然,这并不适用于所有应用程序,例如 OpenID 或 gmail。这是因为这些服务通常在登录请求中包含随机值。