Как получить куки из Javascript? - PullRequest
0 голосов
/ 02 июля 2018

Как я могу получить доступ к этим «Cookies» через код js? Они не представлены в объекте document.cookie (он пуст)

screenshot

Ответы [ 2 ]

0 голосов
/ 02 июля 2018

Если cookie помечен как HTTPOnly, он не будет отображаться в document.cookie. Атрибут HTTPOnly предназначен для предотвращения кражи ваших файлов cookie атакой XSS. Таким образом, вы не можете получить доступ к cookie, помеченному HTTPOnly, из Javascript.

Глядя на скриншот, кажется, что первый cookie подходит для этого. Я предполагаю, что другие файлы cookie принадлежат другому домену (возможно, из-за Iframe на странице), поэтому они могут не отображаться в document.cookie, если вы не переключите контекст на этот конкретный Iframe

Рекомендации:

Атрибут cookie HTTPOnly может помочь смягчить эту атаку (XSS), предотвращая доступ к значению cookie через Javascript.

https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie

Также, вы можете узнать больше об этом в разделе «Кража куки и XSS» здесь: https://www.nczonline.net/blog/2009/05/12/cookies-and-security/

0 голосов
/ 02 июля 2018

Вы пробовали легкий путь:

var x = document.cookie;

Или вы можете создать следующую функцию для доступа к определенному файлу cookie

function getCookie(cname) {
        var name = cname + "=";
        var decodedCookie = decodeURIComponent(document.cookie);
        var ca = decodedCookie.split(';');
        for(var i = 0; i <ca.length; i++) {
            var c = ca[i];
            while (c.charAt(0) == ' ') {
                c = c.substring(1);
            }
            if (c.indexOf(name) == 0) {
                return c.substring(name.length, c.length);
            }
        }
        return "";
    }

Ссылка на документацию: Документация файлов cookie w3schools

Попробуйте через JQuery

alert( $.cookie("example") );

Или, если у вас есть безопасный файл cookie (HTTPOnly Cookie)

Перейти к этой теме: Чтение безопасных файлов cookie

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...