【问题标题】:How to access localStorage information with javascript and devtool如何使用 javascript 和 devtool 访问 localStorage 信息
【发布时间】:2021-10-16 07:11:45
【问题描述】:

我已登录 discord.com 页面,我想知道应该运行什么 javascript 代码来访问本地存储中的电子邮件,我尝试运行

localStorage.getItem("email_cache") 

但我得到了错误:

Uncaught ReferenceError: localStorage is not defined

但是,如果我在applications 选项卡中打开 devtools,我在 localStorage 中看到了我的电子邮件,如何使用 javascript 访问它?

【问题讨论】:

  • discord.com 似乎出于某种原因完成了delete window.localStorage;。他们可能首先将其重命名为其他名称。
  • 如果你打开了 DevTools,为什么不能只使用存储选项卡而不是控制台?
  • 你可以试着弄清楚他们是否给了它一个你可以访问的新名称,然后使用它。但它可能在一个闭包内,因此很难访问。他们一定是故意让像你这样的人很难做到这一点。
  • @Barmar 因为我使用 Selenium 来自动化流程并且使用控制台选项卡对我来说是最简单的,所以我已经有了操作控制台的代码,但我想用 javascript 来获得它
  • 刚刚为每个 JS 文件做了 ⌘F 'localStorage'。他们删除了windowdocument。那些人走了,什么也改变不了。他们甚至将变量命名为 e、r、f,所以我不知道它们的含义。可能是为了安全。

标签: javascript google-chrome-devtools devtools


【解决方案1】:

确认,正如@Barmar 建议的那样,他们正在重命名闭包内的 localStorage 对象,然后删除对其的全局引用,显然是出于安全原因。

这是在一个名为/assets/89354aa0051558f7225a.js 的脚本中完成的,该脚本在<head> 部分的末尾附近加载。

var r;
try {
  r = window.localStorage
} catch (e) {}
try {
  delete window.localStorage
} catch (e) {}

解决方案是在<head> 的顶部(在任何其他脚本之前)注入一个脚本,将对localStorage 对象的引用保存为另一个名称,以便以后使用。由于您没有指定如何使用 Selenium,因此我无法就此提供进一步的建议,但有代理和其他方法可以完成。

旁注:我已经在浏览器控制台中编写并使用this function 来搜索 Discord 源代码。

【讨论】:

    猜你喜欢
    • 2022-07-21
    • 1970-01-01
    • 2021-12-01
    • 2020-05-22
    • 2021-08-31
    • 1970-01-01
    • 2012-07-23
    • 2011-03-09
    相关资源
    最近更新 更多