получить идентификатор сессии из файлов cookie, используя JavaScript - PullRequest
2 голосов
/ 02 июня 2011

Я пытаюсь узнать о печенье и что все они хранят. Поскольку я являюсь активным пользователем Google Chrome, я думал о том, чтобы получить доступ к идентификатору сеанса веб-страницы из файла cookie, используя только Javascript. Я получил список всех файлов cookie, сохраненных в браузере, используя chrome.cookies.getAll().

Однако я не могу понять, как получить доступ к идентификатору сеанса из файлов cookie, поскольку для него нет ключевого слова?

Как получить идентификатор сеанса из файлов cookie?

Код для получения куки ниже:

<html><head>
<script>
chrome.browserAction.onClicked.addListener(getCookies);

var cacheMap = {};
var cookie_nameArr = [];
var cookie_valArr = [];


    function getCookies(){
        chrome.cookies.getAll({}, function(cookies){

            for(var b in cookies){                      
            var cookieVal = cookies[b].value;
            var cookieName = cookies[b].domain;
                    cookie_nameArr.push(cookieName);
                    cookie_valArr.push(cookieVal);              
                if(!cacheMap[cookieName])
                {
                    cacheMap[cookieName] = 1;
                }
                else
                    cacheMap[cookieName]++;
    }//alert(cookie_nameArr.length + "," + cookie_valArr.length);
        for(var i=0;i<3;i++)
    {   
        alert(cookie_nameArr[i] + ", " + cookie_valArr[i]);

    }

});
}

</script></head>
</body></html>

1 Ответ

1 голос
/ 02 июня 2011

Сначала вам нужно выяснить, что вы ищете.Трудно искать черного кота в темной комнате, особенно если его там нет.

Откройте инструменты разработчика Chrome на интересующей вас странице и откройте вкладку Ресурсы.Вы видите свое печенье под "Cookies"?Если да, то вы сможете прочитать его своим методом.Если нет, то проверьте URL вашей страницы - может быть, он передается в качестве параметра url?Если нет, то, возможно, сессия используется только для запросов ajax?Может быть, он вообще не используется?

Сначала нужно найти его вручную, а затем программно.Сессии бывают разных форм и размеров, каждый сайт имеет свой способ его реализации.Вы не можете создать расширение, которое читает сеанс для всех сайтов.

Ваш подход в значительной степени подходит, просто есть простой способ проверки объектов с помощью консоли вместо оповещения:

    chrome.cookies.getAll({domain: "stackoverflow.com"}, function(cookies){
        console.log(cookies);
    });

Нажмите на ссылку background.html на вкладке расширений и проверьте консоль.

...