Доступ к файлам cookie из расширения Google Chrome
Есть ли способ получить доступ к файлам cookie из расширения Chrome?
этот код
document.cookie.length
всегда возвращает - 0.
Ответы
Ответ 1
Это первый раз, когда я прочитал что-то действительно не так на этом сайте.
Доступ к фактическим файлам cookie с расширением возможно с помощью INDEED.
вам просто нужны эти две вещи в вашем манифесте:
"content_scripts": [
{
"matches": ["http://*/*", "https://*/*"],
"js": ["cookie_handler.js"]
}
],
"permissions": [
"tabs",
"http://*/*",
"https://*/*"
],
ваш файл cookie_handler.js будет выполнен в том же контексте каждой страницы загрузчика /frame/iframe.
попробуйте поместить туда одну строку:
alert(document.cookie);
и вы увидите:)
Ответ 2
В настоящее время лучший (самый простой) способ получить файлы cookie сайта в расширении выглядит следующим образом:
chrome.cookies.get({ url: 'http://example.com', name: 'somename' },
function (cookie) {
if (cookie) {
console.log(cookie.value);
}
else {
console.log('Can\'t get cookie! Check the name!');
}
});
Итак, теперь вам не нужен контент script для этого, но не забудьте включить разрешения в манифест:
"permissions": [
"cookies",
"*://*.example.com/*"
]
Ответ 3
Я сделал небольшую заметку о том, как это сделать, а также объясняет, как получить информацию о файлах cookie в фоновом режиме script.
https://vicinitysoftware.com/accessing-site-cookies-from-chrome.html
Ответ 4
Если вы хотите манипулировать информацией о файлах cookie без необходимости посещать сайт (полезно для чего-то вроде FireFox TACO) вы в настоящее время не повезло. Похоже, Google работает над этим: недавно они добавили относительно полный обработчик файлов cookie в экспериментальный API:
chrome.experimental.cookies
Надеемся, что это скоро закончит поддержку API.
Ответ 5
Еще лучше, вы можете использовать HTML5 Localstorage:
localStorage.setItem("itemid", "hello" ); // write
value = localStorage.getItem("itemid"); // read
Если вы действительно хотели прочитать куки файлы любого сайта, который пользователь наблюдает, как писал Дэн, это невозможно, так как действительно могут быть плохие вещи.
Все, что вы можете получить со страницы, - это содержимое страницы DOM.