无法在iframe中加载的自有域上访问httponly标记的Cookie

时间:2016-09-03 04:57:57

标签: javascript jquery iframe cookies google-chrome-extension

我正在制作 Chrome扩展程序在网页上注入iframe 并显示一些内容。

iframe中加载的内容来自https://example.com,我对完全控制。我正试图通过document.cookie从iframe(我认为应该可用)访问https://example.com的Cookie。这不是让我访问httponly标记的cookie,我不知道这个的原因。毕竟这不是跨域。是吗?

这是我用来获取cookie的代码

jQuery("#performAction").click(function(e) {
    e.preventDefault();
    console.log(document.domain); // https://example.com
    var cookies = document.cookie;
    console.log('cookies', cookies);
    var httpFlaggedCookie1 = getCookie("login_sess");
    var httpFlaggedCookie2 = getCookie("login_pass");
    console.log('httpFlaggedCookie1 ', httpFlaggedCookie1 ); // shows blank
    console.log('httpFlaggedCookie2 ', httpFlaggedCookie2 ); // shows blank
    if(httpFlaggedCookie2 != "" && httpFlaggedCookie2 != ""){
        doSomething();
    } else{
        somethingElse();
    }
});

有什么建议可以为此做些什么?

1 个答案:

答案 0 :(得分:2)

Chrome默认情况下为HttpOnly cookies are prevented to be read and written in JavaScript

但是,由于您正在撰写Chrome扩展程序,因此您可以使用chrome.cookies.getchrome.cookies.set进行读/写,并在cookies中声明manifest.json权限。请注意,chrome.cookies只能在后台页面中访问,因此您可能需要对Message Passing

执行某些操作