Как получить файлы cookie из Javascript?

Как я могу получить доступ к этим файлам cookie через код js? Их нет в объекте document.cookie (он пуст)

Как получить файлы cookie из Javascript?

возможный дубликат stackoverflow.com/questions/10730362/get-cookie-by-name

Aravind S 02.07.2018 10:31

Возможный дубликат Получить cookie по имени

Eddie 02.07.2018 10:33

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

Nisarg 02.07.2018 10:36

Нисарг Шах, да, ты первый, кто это увидит. Итак, есть ли способ получить cookie HTTPOnly?

dirty harry 02.07.2018 10:40

@dirtyharry В этом суть HTTPOnly. Что это может быть только Только, которое может быть получено во время HTTP-запроса, и нет через Javascript. Так что нет.

Ivar 02.07.2018 10:42

@dirtyharry Я только что опубликовал ответ с более подробной информацией, но, как сказал Ивар, HttpOnly - это имел в виду, чтобы люди не могли получить доступ к файлам cookie из Javascript. Если вам нужно это сделать, вы можете либо изменить значение атрибута, либо попробовать использовать localStorage. Но с localStorage вы теряете возможность устанавливать его значение с сервера.

Nisarg 02.07.2018 10:46
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
6
2 954
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы пробовали простой способ:

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

«Их нет в объекте document.cookie (он пуст)»

Ivar 02.07.2018 10:35

Да, я удалил этот комментарий

Thomas Verhoeven 02.07.2018 10:46

ну, последняя ссылка выглядит полезной, так что я продолжу изучение с ней, спасибо

dirty harry 02.07.2018 10:46

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

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

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

The HTTPOnly cookie attribute can help to mitigate this (XSS) attack by preventing access to cookie value through Javascript.

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

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

Другие вопросы по теме