Javascript 密码管理器如何知道I';您成功登录了吗?
您知道如何显示登录屏幕,然后填写它,然后浏览器加载下一页吗?此时,密码管理器栏会弹出LastPass、1Password或其他扩展名,询问您是否要保存密码。他们怎么知道你刚刚成功登录Javascript 密码管理器如何知道I';您成功登录了吗?,javascript,google-chrome,passwords,browser-extension,lastpass,Javascript,Google Chrome,Passwords,Browser Extension,Lastpass,您知道如何显示登录屏幕,然后填写它,然后浏览器加载下一页吗?此时,密码管理器栏会弹出LastPass、1Password或其他扩展名,询问您是否要保存密码。他们怎么知道你刚刚成功登录 表单有时会被提交,而js有时会截获表单提交并发送AJAX 响应返回并可能设置新的cookie,但有时会继续使用现有会话cookie(允许会话固定攻击,但某些实现会这样做) 加载或重新加载新位置,但有时javascript会重新加载文档的一部分 但不知怎的,这些密码管理器检测到我成功登录了一个站点!怎么用?是因为
- 表单有时会被提交,而js有时会截获表单提交并发送AJAX
- 响应返回并可能设置新的cookie,但有时会继续使用现有会话cookie(允许会话固定攻击,但某些实现会这样做)
- 加载或重新加载新位置,但有时javascript会重新加载文档的一部分
任何关于提取服务上登录用户id的技术提示也会很有帮助。在大多数情况下,他们实际上并不知道成功登录。他们知道提交了带有密码字段的表单,响应是
200OK
。这可能仍然是显示错误消息的页面
至于提取用户ID,我很确定你指的是个人资料页面或类似的东西。这将必须逐个站点进行,因为站点将有自己的API和路由结构 有人已经回答了这个问题,我同意他的看法
在大多数情况下,他们实际上并不知道登录成功。他们是 注意到已提交带有密码字段的表单,并且响应 是200OK。这可能仍然是显示错误消息的页面
由于浏览器监视包含密码字段的请求,以及请求的响应状态代码,但您仍然可以轻松地愚弄浏览器。要了解登录的用户ID,您肯定需要后端支持/api。这取决于后端使用的身份验证框架。但是您可以很容易地获取表单字段,但是从表单字段中提取/查找userid是一项非常困难的任务,在大多数情况下,表单中只有两个字段,您可以设法获取userid。但在某些情况下,比如银行网站,他们会发送一些虚拟字段,并愚弄这些工具。在某些情况下,userid与电子邮件不同,因此这是一项困难的任务。他们只检测表单是否已提交,并返回代码200(确定)。他们不一定知道你是否登录过,但这种方法适用于大多数网站。他们还可能检测到之后是否加载了新页面,因为失败的登录通常不会重定向用户。但是,我以前收到过保存错误密码的提示。他们可以检测到您当前的选项卡。以及该页面的每个HTML元素。 我们可以向他们提供登录页面案例列表,以检测诸如 登录名,用户名,忘记密码。并检查所有关键字,以确定这是登录页面 他们只是准备页面,甚至他们可以读取您的密码(是的)
如果您从该页面发出请求&响应为200 OK,则表示您的密码正确。无论何时使用用户名和密码请求服务器,服务器都会将这两个条目检查到其数据库中,服务器将找到您的数据,它将返回响应代码200,并使用AJAX成功回调脚本捕获响应代码并将显示成功消息
还可以返回一些类型的信息,这些信息可以存储在浏览器的localStorage或cookie中以供进一步使用。我已经创建了两页静态HTML和表单:因此,当表单提交时,它会转到第二页 让我们测试一下
<form action="test1.html">
<input type="text" />
<input type="password" />
<input type="submit" />
</form>
</body>
Chrome不介意发生任何事情。虽然firefox提供了一个弹出窗口来保存密码,即使表单被提交到错误页面
所以firefox只会查找带有密码字段的表单,并请求保存密码弹出框
如果您想创建一个扩展,它可以检查用户是否成功登录,然后您想请求密码记住弹出窗口。为此,您必须检查服务器响应。我无法创建动态页面来用浏览器示例进行校对。wow。。百分之一百的奖金都是因为你不知道如何使用谷歌。。。可耻的是,你曾在用户名中与一只熊摔跤。我怀疑这只熊是否认为这是摔跤。勒芒打得很好,格雷戈里,打得很好