Мне нужно получить все файлы cookie, хранящиеся в моем браузере, с помощью JavaScript. Как это сделать?
Мне нужно получить все файлы cookie, хранящиеся в моем браузере, с помощью JavaScript. Как это сделать?
Ответы:
Вы можете получить доступ только к файлам 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"
document.cookies
(из книги О'Рейли).
HttpOnly
куки.document.cookie
свойстве, которое содержит список пар, разделенных точкой с запятойname=value
.Ты не можешь. По умолчанию в целях безопасности вы можете получить доступ только к файлам cookie, установленным вашим сайтом. StackOverflow не видит файлы cookie, установленные UserVoice, и файлы cookie, установленные Amazon.
Чтобы получить все файлы cookie для текущего документа, открытого в браузере, вы снова используете document.cookie
свойство.
Современный подход.
let c = document.cookie.split(";").reduce( (ac, cv, i) => Object.assign(ac, {[cv.split('=')[0]]: cv.split('=')[1]}), {});
console.log(c);
;)
Поскольку в заголовке не указано, что это должно быть программное обеспечение, я предполагаю, что это была настоящая проблема отладки / управления конфиденциальностью, и решение зависит от браузера и требует браузера со встроенным подробным сбором данных для управления файлами cookie и / или модуля отладки или плагин / расширение. Я собираюсь перечислить один и попрошу других подробно описать браузеры, которые они знают, и, пожалуйста, уточняйте версии.
Хром, железо (SRWare Iron 4.0.280)
Меню гаечного ключа (инструмента): Параметры / Под капотом / [Показать файлы cookie и разрешения веб-сайтов] Для связанных доменов / сайтов введите суффикс в поле поиска (например, .foo.tv). Предостережение: когда у вас есть узел (сайт или файл cookie), выделенный щелчком, используйте только [Удалить], чтобы уничтожить определенные поддеревья. Использование [Удалить все] по-прежнему приведет к удалению файлов cookie для всех сайтов, выбранных поиском, и потеря сеанса отладки.
Добавлен trim () к ключу в объекте и назовите его str, чтобы было более понятно, что здесь мы имеем дело со строкой.
export const getAllCookies = () => document.cookie.split(';').reduce((ac, str) => Object.assign(ac, {[str.split('=')[0].trim()]: str.split('=')[1]}), {});
Если вы разрабатываете расширения для браузера, вы можете попробовать browser.cookies.getAll ()
То, о чем вы просите, возможно; но это будет работать только в определенном браузере. Для этого вам необходимо разработать приложение для расширения браузера. Вы можете узнать больше о chrome api, чтобы лучше понять. https://developer.chrome.com/extensions/cookies