Мені потрібно отримати всі файли 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"
HttpOnly
файли cookie.document.cookie
властивості, яка містить розділений крапкою з комою список name=value
.Ви не можете. Конструюючи, з метою безпеки, ви можете отримати доступ лише до файлів cookie, встановлених вашим сайтом. StackOverflow не бачить файлів cookie, встановлених UserVoice, ані тих, які встановлює Amazon.
Сучасний підхід.
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)
Меню гайкового ключа (інструмента): Параметри / Під The Hood / [Показати файли cookie та дозволи веб-сайту] Для пов’язаних доменів / сайтів введіть суфікс у поле пошуку (наприклад, .foo.tv). Caveat: якщо у вас є вузол (сайт або cookie), виділеним клацанням, використовуйте лише [Remove] для вбивства конкретних підкреслень. Використовуючи [Видалити все], все одно буде видалено файли cookie для всіх веб-сайтів, вибраних шляхом пошуку, і витратити ваш сеанс налагодження.
Якщо ви розробляєте розширення браузера, ви можете спробувати browser.cookies.getAll ()
Те, що ви просите, можливо; але це працюватиме лише в певному браузері. Для цього потрібно розробити додаток для розширення браузера. Ви можете прочитати більше про хромовані api, щоб краще зрозуміти.https://developer.chrome.com/extensions/cookies