Fórum Root.cz
Ostatní => Odkladiště => Téma založeno: imrich kann 22. 01. 2019, 12:51:57
-
Hledám způsob (userscriptem například), jak v prohlížeči blokovat cookie, které jsou nastavované skrze javascript. Tzn aby se cookies s vybraným jménem NEodesílaly na server. A potřebuji to jako generické pravidlo, (aby to hned fungovalo na libovolné stránce).
-
definujete setter nad document.cookie.
-
Jenže ono to nefunguje... Buď je tam potřeba dát nějaké práva (unsafewindows a podobná magie), nebo změnit @run-at. nebo . Nerozumím tomu pořáadně. Kromě toho document.cookie je vůbec divný, protože když nastavím, že document.cookie="a=b"; tak se
// ==UserScript==
// @name cookier
// @namespace Tučňák Tuňák
// @include https://www.maminka.cz/*
// @include https://www.expres.cz/*
// @include https://www.idnes.cz/*
// @include https://www.aktualne.cz/*
// @include https://www.reflex.cz/*
// @include https://www.respekt.cz/*
// @include https://*.zive.cz/*
// @version 3.14
// @grant none
// ==/UserScript==
console.log("--- cookie manager ");
Object.defineProperty(document, 'cookie', {
get: function(y){
console.log("--- cookie ## get " + document.cookie);
return ''},
set: function(y{
console.log("--- cookie ## set "+y+ document.cookie);
return true},
}
)
Zkoušeno it
document.cookie="";
document.cookie="adb";
document.cookie="adb=";
document.cookie="";
Je v tom bordel (ty poslední řádky) - když si pak vypíšu document.cookie, někdy tam vidím, že název cookie tam je nastaven, někdy je vynulován (nazev=) někdy je tam původní i novyý (nazev=puvodni ; dalsi=bla; nazev=...)
Očividně se cookei na stránky odesílají.
Dokonce ani nezabere ublock
domena.cz##script:inject(cookie-remover.js, nazev) způsobí, že to funguje v 50% (téměř pravidelně: liché reloady/navigace bez problému, sudé s cookie+infikováno). Kromě toho pak výpis document.cookie dává falešnou informaci, že cookie takový neexistuje. bavím se o cookies nastavovaných přes javascript furt.
-
// @grant unsafeWindow
// @run-at document-start
a
Object.defineProperty(unsafeWindow.document, 'cookie', ....
by mělo fungovat.
-
nefunguje mi to
// ==UserScript==
// @name cookie
// @namespace dickens
// @include https://www.maminka.cz/*
// @include https://www.expres.cz/*
// @include https://www.idnes.cz/*
// @include https://www.aktualne.cz/*
// @include https://www.reflex.cz/*
// @include https://www.respekt.cz/*
// @include https://*.zive.cz/*
// @grant unsafeWindow nebo nic
// @run-at document-start nebo bez
// ==/UserScript==
el=document; // nebo unsafeWindow.document
console.log("--- cookie ## ");
el.cookie="adb=";
el.cookie="adb.key=";
Object.defineProperty(el, 'cookie', {
get: function(y){
console.log("--- cookie ## get " + el.cookie);
return ''},
set: function(y{
console.log("--- cookie ## set "+y+ el.cookie);
return true},
}
)
el.cookie="adb=";
el.cookie="adb.key=";
console.log("--- cookie ## ");
mimochodem co je odpoved ze serveru:
<h3>404 Not Found</h3>
neni adb_cook_24109591
-
Nejsem webař, ale ta kukina musí "patřit" nějaké doméně, ne?
Nebo fakt lze v javashitu na webu xxx.com poslat zpátky serveru kukinu z webu yyy.com. ?
Mi se na tohle blokování osvědčil uMatrix.
(v kombinaci s uBlockem, NoScriptem a Privacy Badgerem)
Ale jak jsem říkal, nejsem webař...
-
Nejsem webař, ale ta kukina musí "patřit" nějaké doméně, ne?
Nebo fakt lze v javashitu na webu xxx.com poslat zpátky serveru kukinu z webu yyy.com. ?
Mi se na tohle blokování osvědčil uMatrix.
(v kombinaci s uBlockem, NoScriptem a Privacy Badgerem)
Ale jak jsem říkal, nejsem webař...
-
???, nějak se nevložila část příspěvku s odpovědí.
Psal jsem, že jde o cookie, který je normálně patřící té doméně, ze které je navštíven web. A proč tedy píšeš o cookies mezi doménami a že tohle vůbec neřeším.
A nechce se mi z nějakého důvodu používat umatrix, když už požívám ublock vyladěný . Oba doplňky se odlišují v různých okrajových funkcích a i systém blockace je trochu jiný (ublock nemá v podstatě možnost určovat typ obsahu a současně původ). Mám pocit, že by to moc zatěžovalo CPU mít 2 firewally místo jednoho. Tak jsem chtěl něco lehkého - jednoduchý userscript, který se postará o promazání cookies nastavené javascriptem, ale asi to je nějaké vaRlaté.
-
nefunguje mi to
// ==UserScript==
// @name cookie
// @namespace dickens
// @include https://www.maminka.cz/*
// @include https://www.expres.cz/*
// @include https://www.idnes.cz/*
// @include https://www.aktualne.cz/*
// @include https://www.reflex.cz/*
// @include https://www.respekt.cz/*
// @include https://*.zive.cz/*
// @grant unsafeWindow nebo nic
// @run-at document-start nebo bez
// ==/UserScript==
el=document; // nebo unsafeWindow.document
console.log("--- cookie ## ");
el.cookie="adb=";
el.cookie="adb.key=";
Object.defineProperty(el, 'cookie', {
get: function(y){
console.log("--- cookie ## get " + el.cookie);
return ''},
set: function(y{
console.log("--- cookie ## set "+y+ el.cookie);
return true},
}
)
el.cookie="adb=";
el.cookie="adb.key=";
console.log("--- cookie ## ");
mimochodem co je odpoved ze serveru:
<h3>404 Not Found</h3>
neni adb_cook_24109591
máš tam syntaktickou chybu. Mně to funguje, když nastavím prázdný setter, nejdou přidat javascriptové cookies.
-
???, nějak se nevložila část příspěvku s odpovědí.
Psal jsem, že jde o cookie, který je normálně patřící té doméně, ze které je navštíven web. A proč tedy píšeš o cookies mezi doménami a že tohle vůbec neřeším.
...
Znáš význam tohoto znaku: '?' ?
Ale jinak samozřejmě promiň, že jsem se snažil k něčemu dobrat, moje chyba.
;)
-
Nejsem webař, ale ta kukina musí "patřit" nějaké doméně, ne?
Nebo fakt lze v javashitu na webu xxx.com poslat zpátky serveru kukinu z webu yyy.com. ?
Mi se na tohle blokování osvědčil uMatrix.
(v kombinaci s uBlockem, NoScriptem a Privacy Badgerem)
Ale jak jsem říkal, nejsem webař...
javascriptové cookies jdou nastavovat jen vlastní doméně stránky.
-
Nejsem webař, ale ta kukina musí "patřit" nějaké doméně, ne?
Nebo fakt lze v javashitu na webu xxx.com poslat zpátky serveru kukinu z webu yyy.com. ?
Mi se na tohle blokování osvědčil uMatrix.
(v kombinaci s uBlockem, NoScriptem a Privacy Badgerem)
Ale jak jsem říkal, nejsem webař...
javascriptové cookies jdou nastavovat jen vlastní doméně stránky.
OK, dík za upřesnění.
(stejně si myslím, že to v tom uMatrixu jde úplně krásně)
-
wow, konečně Terminátor funguje. Jen to není uplně uživatelsky přívětivé, protože když už ty cookies jsou nastavené , nejdou smazat, což znesnadnuje testování.
teď ještě kde zjistit seznam domén
https://img.cncenter.cz/static/data/blesk/cncenter/sas/js/cncsas.js?&#
/ seznam traffic
var site = /Auto|Reflex|Zive|E15|Maminka|Mobilmania|Autorevue|Mojezdravi|Avmania|DIGIarena|FinExpert|Lifee/g;
if(_SAS.seznam.is && site.test(_SAS.site)) _SAS.area = 'Seznam';
/Ahaonline_Mobile|Auto_Mobile|AutoRevue_Mobile|Avmania_Mobile|Blesk_Mobile|Bleskprozeny_Mobile|DIGIarena_Mobile|Hokej_Mobile|iSport_Mobile|Lideazeme_Mobile|Maminka_Mobile|Mimibazar_cz_Mobile|MobilMania_Mobile|NHL_Mobile|Recepty_Mobile|Reflex_Mobile|SportRevue_Mobile|Supermamy_Mobile|Zeny_Mobile|Zive_Mobile/g;
http://www.zive.cz/Client.Scripts/webProtocol.js?
"connect.zive.cz",
"vtm.zive.cz",
"doupe.zive.cz",
"digiarena.e15.cz",
"finexpert.e15.cz",
"avmania.e15.cz",
"jnp.zive.cz",
"sportrevue.isport.blesk.cz",
"f1sport.auto.cz",
"www.autorevue.cz",
"www.maminka.cz",
"motogpsport.autorevue.cz",
"www.zive.cz",
"www.mobilmania.cz",
"samsungmania.mobilmania.cz",
"navigovat.mobilmania.cz",
"www.zeny.cz",
"www.mojezdravi.cz",
"www.recepty.cz",
"www.dama.cz",
"www.info.cz"
V brzké době zasáhne.
-
protože když už ty cookies jsou nastavené , nejdou smazat
jde jim nastavit expires na minulé datum.