如何在bookmarklet中进行身份验证

How to do authentication in bookmarklet?

本文关键字:身份验证 bookmarklet      更新时间:2023-09-26

我希望我的bookmarklet要求用户登录。这就是我们的想法....我创建了一个iframe供用户登录,并显示了a/c信息。但是我想从服务器得到一些信息,例如,我想知道用户是否已经将这个页面添加到我的服务器上。我想进行ajax调用,但由于同源策略,我不能通过ajax实现。那么,我如何从框架中获取信息呢?

故事是这样的:

用户web ->用户点击bookmarklet ->如果登录->显示一个'添加到fav'按钮->用户点击添加到fav按钮,url被提交到服务器,重新加载服务器。

用户web ->用户单击bookmarklet ->如果未登录->显示登录按钮->登录成功->按照前面的流程执行

用户web ->用户单击bookmarklet ->如果已登录->检查网站是否已添加到服务器->无fav按钮

可以看到,只有iframe存储了登录用户的信息。

您所做的是不可能的,因为它违反了原始继承规则。这样想吧。如果您可以以这种方式从另一个网站获取信息,那么您可以阅读CSRF令牌,或者从他们的gmail帐户中阅读某人的电子邮件。

说到CSRF,大多数登录只是一个带有用户名/密码的简单帖子。您在您的网站上建立一个简单的<form>,与登录所需的POST请求相同。使用JavaScript,您可以在表单上调用.submit(),这将使浏览器重定向到他们新认证的会话。事实上,这就是基于POST的CSRF漏洞利用的工作方式(尽管通常在CSRF攻击中,您假设浏览器已经经过身份验证)。

当然,这并不适用于所有的应用程序,如OpenID或gmail。这是因为这些服务通常在登录请求中包含随机值。