网页开发者在设置 Cookie 的时候 可以打开一个叫做 HttpOnly 的选项。这个选项可以阻止 JS 代码去操作这个 Cookie 。一般来说这个功能用于网站的身份认证信息的存储,避免第三方脚本获取用户的身份认证信息,做出一些不安全的行为俗称盗号。 但是有些时候我们是需要方便获取的,于是这里使用了油猴脚本来获取,抄了别人代码做了一个例子。

该脚本通过 GM_cookie 这个插件提供的对象来读取 Cookie 绕开了 HttpOnly 限制,读取到了一个名字为 ‘SESSDATA’ 的值,该值在 http*://www.bilibili.com/* 域下是 HttpOnly 的,普通的注入 js代码是读取不到的。

注意:篡改猴旧版(4.13.6138)可以用这个,但是新版不知道为什么去掉了GM_cookie,只能用 BETA 版本

// ==UserScript==
// @name              获取cookie测试
// @version           0.0.1
// @author            test
// @description       test
// @match             http*://www.bilibili.com/*
// @connect          www.bilibili.com
// @run-at            document-idle
// @grant             unsafeWindow
// @grant             GM_cookie
// ==/UserScript==

(function () {
    'use strict';
	GM_cookie && GM_cookie('list', {name: 'SESSDATA'}, (cookies, error) => {
		if (!error) {
			alert(cookies[0].value);
		}
	});
})();