Определение происхождения куки, который javascript или пиксель отслеживания
Мне нужно иметь возможность определить и идентифицировать источник файлов cookie. В то время как многие cookie-файлы поступают в браузер в ответе HTTP исходной страницы, другие добавляются в браузер с помощью javascript или с помощью ресурсов, загружаемых на страницу с использованием http (таких как пиксели отслеживания или вызовы AJAX).
Как правильно определить / идентифицировать источник каждого файла cookie?
3 ответа
Публикуя это, как я боролся с этим вопросом, и, наконец, нашел решение.
Это работает в консоли Firefox, насколько я могу судить...
- Установите точку останова в самой первой строке JavaScript, которая, как вам известно, запускается на вашей странице после обновления (до того, как будет установлен какой-либо файл cookie).
- Затем очистите кеш и куки.
- Вставьте приведенный ниже фрагмент кода в консоль в Firefox.
- Удалить точку останова и возобновить выполнение скрипта.
Вы должны увидеть трассировку стека для каждого файла cookie, создаваемого в консоли!
origDescriptor = Object.getOwnPropertyDescriptor(HTMLDocument.prototype, 'cookie'); // add cookie property to HTMLDocument constructor
Object.defineProperty(document, 'cookie', {
get() {
return origDescriptor.get.call(this);
},
set(value) {
console.log("%c Cookie is :" + value, "background: #ffffff; color: #000000");
console.trace();
// debugger;
return origDescriptor.set.call(this, value);
},
enumerable: true,
configurable: true
});
Я должен отдать должное fflorent за этот код, который он разместил в другой теме - спасибо!
Код для вставки в консоль Chrome на основе этого:прерывание выполнения JavaScript всегда при установке файла cookie .
function debugAccess(obj, prop, debugGet){
var origValue = obj[prop];
Object.defineProperty(obj, prop, {
get: function () {
if ( debugGet )
debugger;
return origValue;
},
set: function(val) {
debugger;
return origValue = val;
}
});
};
debugAccess(document, 'cookie');
Откройте консоль разработки в браузере и сохраните ссылку на собственный метод получения / установки документа document.cookie. После этого переопределите метод получения / установки set.cookie своей собственной функцией, где вы можете включить console.log("создание cookie:" + значение), а затем вызвать собственный метод получения / установки в этой функции. Смотрите следующую ссылку для примера кода: Cookie Monster