6

当浏览器关闭使用操作系统时,我想阅读浏览器的“本地存储”!

我想将客户端数据保存在本地存储中,然后关闭浏览器和互联网,然后让操作系统程序(Windows exe)访问和分析该数据,然后将新数据写入该本地存储区域,以便当浏览器重新启动新的数据在本地存储中。

这应该是可能的,因为我的操作系统(即 Windows)可以读取可以从浏览器“文件”中删除 cookie ......所以大概一旦我知道本地存储“文件”的格式,那么操作系统就是它所有文件的老板,所以它应该能够改变它们!

那么:我如何使用“客户端 .exe 程序”读取和写入 JavaScript/HTML5/DOM“本地存储”?

失败:操作系统是否可以通过其他方式将简单数据传入(和传出)浏览器?

显然这一切既有巨大的潜在力量,也有巨大的潜在危险!

只有真正的操作系统可以安全地与之交互,浏览器才能成为“未来的虚拟操作系统” !

谢谢你。

4

2 回答 2

7

当然,具有适当权限的本地应用程序可以访问磁盘上的任何文件。但是,真正的问题是打开该文件后如何处理它?

考虑以下:

  • 每个浏览器(Chrome、Firefox、IE、Opera)都可能以自己的专有格式存储本地存储数据。您必须对这些格式进行逆向工程。
  • 由于这些格式是实现细节(不是记录在案的 API),因此它们很可能会更改。这会破坏您的应用程序和/或损坏用户数据。
  • 如果您在浏览器打开时修改这些数据文件(即使相关页面未打开),会发生什么情况?浏览器不希望它们的数据文件从它们下面发生变化,因此您可能会看到奇怪的行为。

所有这一切都说明这是一个非常糟糕的主意。你在搞乱别人应用程序的内部;这是一个很大的禁忌。

您是否考虑过另一种方法?当我遇到类似的问题时,我只是在我的应用程序中实现了一个非常简单的 HTTP 服务器,它绑定到 127.0.0.1 上的特定端口。

使用 XHR 和适当的 CORS 标头,您的基于浏览器的应用程序可以以安全的方式与您的桌面应用程序通信。

于 2013-02-03T22:06:49.213 回答
1

这里有一些其他的方法:

  • 在您的应用程序中嵌入 Web 浏览器控件。Web 浏览器控件可以很容易地窥视页面,并且页面可以很容易地窥视本地存储。Web 浏览器控件主要是指Internet Explorer。
  • 您可以通过操作可执行文件的名称将网页中的参数传递到已启动的可执行文件(甚至是批处理文件)中。(当用户下载程序时,使用application/batasContent-Type邀请操作系统运行您的程序。)
  • 从浏览器启动的ClickOnce程序可以很容易地从网页接收数据。
  • 您可以在您的程序(AutoItAutoHotKey)中使用自动化来复制/粘贴到您网页上的某个字段。您可以通过标题找到窗口,因为您可以控制网页端的标题。您甚至可以自动打开浏览器,将其导航到将本地存储转储到文本字段的页面,并聚焦该字段。
  • ActiveX 控件(祝你好运)

对于 OS X 或 Linux,我不能说类似的技巧。

于 2013-02-04T02:56:04.040 回答