背景:需要获取某些完整Application-Storage里面的相关信息
结果: 可获取,但是cookie当中除了httpOnly之外的
经过一番探索:
解决方案是
通过谷歌插件来获取全部cookie(包括httpOnly的),突破httpOnly的限制
主要代码是通过
var port = chrome.runtime.connect({name: "get_cookie"});
port.postMessage({"do": "get_cookie", "site": site, "name": name, "domain": domain});
port.onMessage.addListener(function(msg) {
// msg这个就是cookies信息了
console.log(msg)
})
自行开发谷歌插件:
1、去谷歌的设置-更多工具-拓展程序,
在这里把开发者模式打开(目的:方便运行我们本地写的插件代码以便进行调试)
function onload(func) {
if (document.readyState === "complete") {
func();
} else {
window.addEventListener('load', func);
}
}
onload(function() {
console.log("onload");
document.body.setAttribute("get-cookie", "true");
window.postMessage("start", "*");
window.addEventListener('click', function(event) {
var export_btn = event.target;
var port = chrome.runtime.connect({name: "get_cookie"});
var site = export_btn.getAttribute("data-site");
var name = export_btn.getAttribute("data-name");
var domain = export_btn.getAttribute("data-domain");
var callback = export_btn.getAttribute("data-callback");
port.postMessage({"do": "get_cookie", "site": site, "name": name, "domain": domain});
port.onMessage.addListener(function(msg) {
if (window.confirm('你确定要此网站获取你' + site + '的Cookies么?')) {
export_btn.setAttribute("data-cookie", JSON.stringify(msg));
window.postMessage(msg, "*");
} else {
return false;
}
});
}, false);
});