可以使 cookie 永久存在吗(通过浏览器,而不是服务器)?

可以使 cookie 永久存在吗(通过浏览器,而不是服务器)?

我安装了一个程序K9 网络保护在我的电脑中。它会检测 hosts 文件中所做的任何更改并阻止对该网站的访问。我已在 hosts 文件中进行了这些更改

::ffff:216.239.38.120 google.com www.google.com
216.239.38.120 google.com www.google.com

现在的情况是,如果我在打开网站后更改 hosts 文件(即存储其 cookie),则不会显示警告。但是一旦我清除 cookie,它就会检测到更改,网站不会打开。有什么方法可以永久存储 cookie 文件并随时使用它?我尝试将 cookie 的生存期延长到 2050 年,然后将文件cookie.sqlite从复制c:users>acer>appdata>local>google>chrome>userdata>default到桌面,然后清除浏览器的 cookie。之后,我将桌面文件复制到同一目录,但 K9 再次掌握了它。

  • 我可以让 cookie 永久存在,并将其存储在不同的位置并在需要时使用它吗?
  • 其他链接可以打开但 Google 却打不开,为什么?

答案1

从技术上讲,浏览器确实可以忽略服务器定义的 cookie 生命周期,这一点您已经亲自证明了。您甚至可以创建一些脚本来更改该.sqlite文件,而无需复制它。

此类更改将使浏览器在下次请求时将 Cookie 的名称和值(但不包括其有效期)发送到服务器。不过,此时一切取决于服务器:

  • 大多数 cookie 根本不包含太多详细信息,除了一些随机的唯一 ID,服务器也需要知道这些 ID。因此,例如,如果服务器已从其数据库中删除了过期的唯一 ID,它将找不到与浏览器发送的 cookie 匹配的 cookie,并忽略它。或者它可能会识别它,但仍然拒绝它,因为它更了解情况。

  • 一些 cookie 可能具有一个值,该值本身以某种方式声明了到期日期。

  • 许多服务器会不时刷新 Cookie,甚至在每次响应时刷新一次。因此,即使更改后的 Cookie 被接受,只要该 Cookie 被发送到服务器并且服务器返回新的 Cookie,浏览器就很可能会用新值和新的到期日期覆盖它。

我认为成功的机会很小,并且很大程度上取决于网站。


文件.sqlite基本上是一个 SQL 数据库,并且或许如果浏览器无法以某种方式保护其内容,某些update cookies set expires = ... where name = ...方法可能会奏效。您还可以通过添加到期日期将“会话”cookie 更改为永久 cookie。

相关内容