Мне нужно получить все куки из браузера - PullRequest
81 голосов
/ 31 октября 2008

Мне нужно получить все куки, хранящиеся в моем браузере, используя javascript. Как это можно сделать?

Ответы [ 7 ]

69 голосов
/ 31 октября 2008

Вы можете получить доступ только к файлам cookie для определенного сайта. Используя document.cookie, вы получите список экранированных пар ключ-значение, разделенных точкой с запятой.

secret=do%20not%20tell%you;last_visit=1225445171794

Чтобы упростить доступ, вам нужно проанализировать строку и удалить все записи:

var getCookies = function(){
  var pairs = document.cookie.split(";");
  var cookies = {};
  for (var i=0; i<pairs.length; i++){
    var pair = pairs[i].split("=");
    cookies[(pair[0]+'').trim()] = unescape(pair[1]);
  }
  return cookies;
}

Так что вы могли бы позже написать:

var myCookies = getCookies();
alert(myCookies.secret); // "do not tell you"
26 голосов
/ 31 октября 2008
  1. Вы не можете видеть файлы cookie для других сайтов.
  2. Вы не можете видеть файлы cookie только для http.
  3. Все файлы cookie, которые вы видите, находятся в свойстве document.cookie, которое содержит разделенный точкой с запятой список пар имя = значение.
25 голосов
/ 31 октября 2008

Вы не можете. В целях безопасности вы можете получить доступ только к файлам cookie, установленным на вашем сайте. StackOverflow не может видеть файлы cookie, установленные UserVoice, и файлы cookie, установленные Amazon.

11 голосов
/ 31 октября 2008

Чтобы получить все файлы cookie для текущего документа, открытого в браузере, вы снова используете свойство document.cookie.

2 голосов
/ 09 мая 2019

Современный подход.

let c = document.cookie.split(";").reduce( (ac, cv, i) => Object.assign(ac, {[cv.split('=')[0]]: cv.split('=')[1]}), {});

console.log(c);

;)

2 голосов
/ 28 февраля 2013

Поскольку в заголовке не указано, что он должен быть программным, я предполагаю, что это была настоящая проблема отладки / управления конфиденциальностью, а решение зависит от браузера и требует браузера со встроенным подробным списком управления cookie и / или модуль отладки или плагин / расширение. Я собираюсь перечислить один и попросить других людей написать в браузерах, которые они знают подробно, и, пожалуйста, будьте точны с версиями.

Хром, железо (SRWare Iron 4.0.280)

Меню гаечного ключа (инструмента): Параметры / Под капотом / [Показать файлы cookie и разрешения веб-сайта] Для связанных доменов / сайтов введите суффикс в поле поиска (например, .foo.tv). Предостережение: если у вас есть узел (сайт или файл cookie), подсвеченный щелчком, используйте [Удалить] только для удаления определенных поддеревьев. Использование [Удалить все] будет по-прежнему удалять файлы cookie для всех сайтов, выбранных поиском, и тратить время на отладку.

0 голосов
/ 10 мая 2019

Добавлен trim () к ключу в объекте и назовите его str, чтобы было более понятно, что мы имеем дело со строкой здесь.

export const getAllCookies = () => document.cookie.split(';').reduce((ac, str) => Object.assign(ac, {[str.split('=')[0].trim()]: str.split('=')[1]}), {});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...