1

有没有办法从 Windows 或 Mac 客户端应用程序中以编程方式访问流行浏览器 (Chrome/FF/IE) 的 cookie 存储?

或者

有关浏览器如何/在何处将 cookie 存储在磁盘上的任何信息/文档?

4

1 回答 1

1

每个浏览器都以不同的方式存储其 cookie。

Internet Explorer 使用 WinINET 存储其 cookie;有一个用于访问 cookie 的完整 API,但由于引入了保护模式,它在 Vista+ 上的 IE8 中变得更加复杂,尽管引入了 API 以允许桌面应用程序与保护模式 cookie 交互。

IE10+ 引入了增强保护模式,这让事情变得更加复杂,因为在 EPM 中没有 API 可以与 cookie 进行交互。

http://blogs.msdn.com/b/ieinternals/archive/2009/08/20/wininet-ie-cookie-internals-faq.aspx

Q11:应用程序或原生代码插件如何检索 cookie?

答:使用 InternetGetCookieEx 函数。

请注意,默认情况下,从此函数返回的 cookie 不会包含任何 HTTPOnly cookie。要检索 HTTPOnly cookie,您必须传递 IE8+ 中可用的 INTERNET_COOKIE_HTTPONLY 标志。如果您决定传递此标志,则必须确保您的代码不会将返回的值暴露给任何脚本可控制的上下文。(注意:IE7 的累积更新 (KB960818) 中似乎添加了对 INTERNET_COOKIE_HTTPONLY 标志的支持)。

注意:在 Windows Vista 及更高版本上,Internet Explorer 在保护模式下运行 Internet 内容,这是一个带有隔离 cookie 存储的沙盒。为了从以中等完整性运行的外部应用程序(也称为 Internet Explorer 之外)的保护模式沙箱获取 cookie,您必须使用 IEGetProtectedModeCookie 函数。此 API 是在 IE8 中添加的,不幸的是,IE7 没有直接的替代方案。此 API 有许多限制,特别是它不能被以高完整性 (Admin) 运行的进程调用。

于 2013-10-08T16:59:48.910 回答