【问题标题】:Access Browser cookie store from native Windows/Mac application从本机 Windows/Mac 应用程序访问浏览器 cookie 存储
【发布时间】:2013-10-08 02:48:43
【问题描述】:

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

或者

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

【问题讨论】:

    标签: windows macos internet-explorer google-chrome firefox


    【解决方案1】:

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

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

    IE10+ 引入了 Enhanced 保护模式,这使得事情变得更加更加复杂,因为 EPM 中没有与 cookie 交互的 API。

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

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

    A:使用 InternetGetCookieEx 函数。

    注意,默认情况下,此函数返回的 cookie 不会 包括任何 HTTPOnly cookie。要检索 HTTPOnly cookie,您必须 传递 IE8+ 中可用的 INTERNET_COOKIE_HTTPONLY 标志。如果你 决定传递这个标志,你必须确保你的代码不会 将返回的值公开给任何脚本可控制的上下文。 (笔记: 似乎对 INTERNET_COOKIE_HTTPONLY 标志的支持是 在累积更新中添加到 IE7 (KB960818))。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-21
      • 2021-10-13
      • 1970-01-01
      • 2018-11-12
      • 2012-05-07
      • 2013-03-02
      • 2018-10-30
      • 2021-12-13
      相关资源
      最近更新 更多