javascript - 如何在书签中进行身份验证?

标签 javascript security authentication bookmarklet

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

故事大概是这样的:

User web -> user clicks the bookmarklet -> if logged in -> show an 'add to fav' button -> user clicks the add to fav button, the url is submitted to the server, reload the server.

User web -> user clicks the bookmarklet -> if not logged -> show a login button -> login success -> do the flow as previous

User web -> user clicks the bookmarklet -> if logged -> check if the website is already added on server -> no fav button

如您所见,只有 iframe 存储登录用户的信息。

最佳答案

你所做的是不可能的,因为它违反了 origin inheritance rules .这样想。如果你能从这个时尚的另一个网站获得信息,那么你可以阅读 CSRF Tokens ,或从他们的 gmail 帐户阅读某人的电子邮件。

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

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

关于javascript - 如何在书签中进行身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7149825/

相关文章:

javascript - 生产中的 Angular 应用程序路由错误

php - csrf ... php 表单安全

angularjs - 当请求来自另一个域时,如何在 sails JS 后端应用程序中保留身份验证状态?

php - Sonata Admin : isGranted() always returns true in Admin class, 但模板中的 bool 值正确

php - 通过 PHP 请求客户端证书进行身份验证

javascript - jQuery 函数 .on() 不适用于 "click"事件

javascript - 仅将 CSS 应用于文本内容

javascript - 使用javascript打开新选项卡并重新加载父页面

php - 使用变量位置的 file_get_contents() 的安全漏洞

安全风险 : OLEDB Excel