Как я могу сосчитать все сохраненные куки? - PullRequest
0 голосов
/ 28 октября 2019

В настройках браузера (firefox, chrome) я вижу список моих файлов cookie, но не общее количество. Я работаю над визуализацией в JavaScript (D3.js) и хотел бы добавить счетчик файлов cookie.

Единственный вариант, который я нашел до сих пор, - это написать AddOn, зарегистрировать длину cookies.getAll () и добавьте этот номер в мою визуализацию. Поскольку это число постоянно меняется, я ищу более простой способ получить количество моих файлов cookie с помощью JavaScript.

Спасибо!

1 Ответ

0 голосов
/ 28 октября 2019

Сценарий, который запускается на веб-странице, ограничен доступом к информации, связанной с собственным происхождением страницы (домен, схема и порт). Из соображений безопасности мы не хотим, чтобы некоторые arbitrarysite.foo могли знать какую-либо информацию о cookie-файлах пользователя, например, gmail.com. Информация о файлах cookie gmail.com подпадает под исключительную компетенцию скриптов, работающих на gmail.com. (Могут быть исключения, сделанные в обоих направлениях для каждого cookie-файла - cookie-файл может быть специально помечен для сторонней видимости или может быть помечен как невидимый для сценариев вообще, но исключительность для каждого источника является общейТаким образом, скрипт, работающий на обычной веб-странице в пределах определенного источника, не может агрегировать информацию о файлах cookie для всех источников.

Действительно, лучше всего написать расширение для браузера. В отличие от веб-страниц, расширениям могут быть предоставлены особые разрешения, поскольку пользователи активно разрешают их устанавливать и предварительно предоставляют им разрешения. API расширения cookies.getAll() кажется подходящим для ваших нужд. Если вы не предоставите никаких фильтров, похоже, что будут собраны все доступные файлы cookie. Однако MDN отмечает существенное поведенческое различие для Edge:

Если URL-адрес не указан, файлы cookie извлекаются только для URL-адресов в открытых на данный момент вкладках. В Chrome он получает все файлы cookie на компьютере пользователя.

Учитывая, что другие браузеры (Firefox, Opera) не содержат аналогичные заметки, я предполагаю, что они также получают все файлы cookie, например Chrome.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...