Мне нужно получить все файлы cookie из браузера

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

Ответ 1

Вы можете получить доступ только к файлам 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.slice(1).join('='));
  }
  return cookies;
}

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

var myCookies = getCookies();
alert(myCookies.secret); // "do not tell you"

Ответ 2

  1. Вы не можете видеть файлы cookie для других сайтов.
  2. Вы не можете видеть HttpOnly куки.
  3. Все файлы cookie, которые вы можете видеть, находятся в свойстве document.cookie, которое содержит разделенный точкой с запятой список пар name=value.

Ответ 3

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

Ответ 4

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

Ответ 5

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

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

console.log(c);

;)

Ответ 6

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

Chromium, Iron build (SRWare Iron 4.0.280)

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

Ответ 7

Дастин Диас писал об этом:

http://www.dustindiaz.com/top-ten-javascript

function getCookie( name ) {    

    var start = document.cookie.indexOf( name + "=" );

    var len = start + name.length + 1;

    if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) {

        return null;

    }

    if ( start == -1 ) return null;

    var end = document.cookie.indexOf( ';', len );

    if ( end == -1 ) end = document.cookie.length;

    return unescape( document.cookie.substring( len, end ) );

}

Ответ 8

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

export const getAllCookies = () => document.cookie.split(';').reduce((ac, str) => Object.assign(ac, {[str.split('=')[0].trim()]: str.split('=')[1]}), {});