Fórum Root.cz
Hlavní témata => Software => Téma založeno: imago 17. 08. 2018, 18:15:07
-
Jak v prohlížeči "vytrestám" globální proměnné? Myslím tím, že mám seznam zakázaných proměnných a chci ,aby při pokusu o její přiřazení z nějakého skriptu provedla mnou definovaná funkce s argumentem jména parametru (klidně prázdná funkce).
například pokud stránka má script přilinkovaný
bla();
Babis= {agent: true; odsouzen: true; naroknadotaci: () => true};
//nebo
window.Babis="Bureš";
aby se neprovedlo nic
-
Proč?
Zakázat provedení není vůbec snadné, může tam být totiž něco jako
babis = function() { return {agent: true; odsouzen: true; naroknadotaci: () => true} }()
a provede se to velice rychle při inicializaci. Pak už ti zbývá pouze načíst stránku a sám si zpracovávat obsah script tagů a sám si z textu odstraňovat co nechceš, což je dost buggy.
Obecně ale stačí pokud projdeš object window a odstraníš co tam nechceš mít, avšak až po provedení/inicializaci ale pořád velice rychle po načtení.
-
Mozna jednodussi je filtr v adb..cku.
-
https://stackoverflow.com/questions/45437583/proxy-on-window#45532444
-
Právěže[/b] není v adblocku . Jinak bych se neptal
Navíc Wladír Palant za adblock má na ruce [url=https://www.technologyreview.com/s/543311/the-ad-blocking-kingpin-reshaping-the-web-as-he-prefers-it/]krev[/zrl], tím, že přes eyeo firmu (možná ghostery se vám vybaví) používal mafiánské praktiky na whitelistování. Navíc takové featury jako site-key jsou vyloženě pitomé. Proto používám uBlock Origin, možná lepší ještě bude Nano Defender (nanoCore).
Dost politiky... mě prostě v chromium selektivní filtrování inline scriptů nejde... (buď mohu zakázat inline scripty normálně v liště), jenže to znefunkční stránku (třeba videa nejdou, není problém si je vyšťourat přes misc.video na idnes např)
Ale (v souladu s [url=https://github.com/gorhill/uBlock/wiki/Inline-script-tag-filtering#caveats]poznámkou že v chromium toto nejde na wiki (https://github.com/uBlockOrigin/uAssets/issues/2790)) mi nejde ##script:contains (nově ##^script:has-text() )
ale dokonce ani nejde
maminka.cz##script:inject(abort-current-inline-script.js, adbDetect)
domena.cz##script:inject(cookie-remover.js, adb)
domena.cz##script:inject(abort-on-property-read.js, adbDetect)
domena.cz##script:inject(abort-on-property-write.js, adbDetect)
domena.cz##script:inject(set-constant.js, adbDetect, trueFunc)
domena.cz##script:inject(set-constant.js, testerr, trueFunc)
domena.cz##script:inject(noeval.js)
Prostě to nejde, i když se v loggeru zobrazí žlutě filtr inject, což značí, že by měl bý použit (a skutečně jiné filtry jdou). Resp to možná jde 2 requesty na stránce, apak stejně se to zadělá cookies a blije to reklamy.
nahraďte domena za :
https://www.idnes.cz/
https://www.novinky.cz/
https://www.aktualne.cz/
https://ihned.cz/
https://www.info.cz/
http://blesk.cz/
http://ahaonline.cz/
https://www.ahaonline.cz/
https://www.extra.cz/
https://www.super.cz/
https://www.zive.cz/
http://isport.blesk.cz/
http://www.auto.cz/
http://www.reflex.cz/
https://www.e15.cz/
https://avmania.e15.cz/
https://www.maminka.cz/
https://www.mobilmania.cz/
https://www.centrum.cz/
http://atlas.centrum.cz/
http://www.volny.cz/
http://tiscali.cz/
http://games.tiscali.cz/
http://nedd.tiscali.cz/
https://cestovani.tiscali.cz/
idnes.cz
novinky.cz
aktualne.cz
ihned.cz
info.cz
reflex.cz
zive.cz
mobilmania.cz
e15.cz
centrum.cz
volny.cz
tiscali.cz
blesk.cz
ahaonline.cz
extra.cz
super.cz
auto.cz
maminka.cz
iprima.cz
nasepenize.cz
osobnosti.cz
karaoketexty.cz
O to víc je žádoucí, abych nemusel explicitně vyjmenovávat seznam domén, které používají agresivní praktiky hijackování reklam (tzn aby to běželo na všech doménách).
- Jednak proto, že script:inject / script:contains musí mít specifikvoanou doménu ( a aspoň že umí v rámci jednoho filtru seskupovat domény přes dom1,dom2##script:inject)
- pak, že seznam stránek se může rozrustat
-
Jestli vám vadí reklamy, tak zkuste Brave (https://brave.com/). UI nestojí za nic, ale reklamy to už v základu blokuje líp, než rozšíření.
-
dobře, tak jsme se oslím můstkem přesunuli od modifikace JS runtime k blokacím reklam a následně k výběru prohlížečů..
Používáš brave? Umí rozšíření,userscripty, správu cookies a oprávnění (navigator,battery, geolocation. getSelection, webgl, localstorage fejkovat, protože chromium objekt nedifinuje a brání se jeho definice, čímž pak skripty na stránkách nefungují kvůli házení Exception undefined property window.localStorage/sessionStorage)a co je vlastně jeho základ. Brave mám v hledáčku ale nějak se mi na něm nezdá jeho "jakoby" letadlový model + filozofie "placení reklam" + napojení na Ponziho schéma digitálních měn.
A hlavní otázka, Poradí si s těmi reklami, které uvádím výše (stačí si otevřít jednu stránku ze seznamu výše, projít zkusmo 4 odkazy, v defaultním režimu (bez vypnutých cookies a inline scriptů)
A vůbec, na základě čeho tvrdíš že lépe blokuje reklamy? Jak konrétně to d dělá? Poradí si i s g00/INstartlogic,Upmanager apod? má nějakou AI nebo na čem je zeloženo blokování reklam v základu?
-
Jak v prohlížeči "vytrestám" globální proměnné? Myslím tím, že mám seznam zakázaných proměnných a chci ,aby při pokusu o její přiřazení z nějakého skriptu provedla mnou definovaná funkce s argumentem jména parametru (klidně prázdná funkce).
například pokud stránka má script přilinkovaný
bla();
Babis= {agent: true; odsouzen: true; naroknadotaci: () => true};
//nebo
window.Babis="Bureš";
aby se neprovedlo nic
muzes nastavit prazdne settery userscriptem
treba
// ==UserScript==
// @name banned globals
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match https://*
// @grant unsafeWindow
// @run-at document-start
// ==/UserScript==
(function() {
'use strict';
var bannedNames = ['Babis', 'Zeman'];
bannedNames.forEach((name) => {
Object.defineProperty(unsafeWindow, name, {set: (val) => {}})
});
})();
-
jeste bych predal configurable: false, aby to neslo prepsat
Object.defineProperty(unsafeWindow, name, {set: (val) => {}, configurable: false});
-
Nejde to. Sice mi to s příšlušným userjs hlásí v konzoli adbDetect že je undefined (i když před tím provedu nebo neprovedu adbDetect=4), avšak stále se nastavuje cookie.
-
Tak cookies se zase blokují jinak, přeci.
-
Jistě. Nevím, proč to chceš furt přetlačit do jiné roviny. Ale ty cookie nejdou ze serveru, ale (na klientu!) z té dané funkce.
Mám podle tebe si zakázat cookies na všech webech? (ne že by to nebylo dobré), Nebo POKUD NAJDU použít doplněk na správu cookies, který zvládne blokovat cookies dle jména? Posledně jsem zkoušel cookies controller pro firefox a výsledkem byla totálně rozesraná správa cookies, najma v debuggeri se ukazovalo něco jiného než skutečný stav. (Ano, vím, že firefox a jeho doplňky jsou v rozkladu, protože tam udávají směr vývoje narcisové, co implementují kraviny jako nějaké screenshoty (s exploitem ještě) nebo personalizaci nebo telemetrie do každého prdu)
Nebo zakázat inline javascripty (a jelikože v chromium mi nejde zprovoznit selektivní blokování inline js script:contains()), je snad ještě horší, protože zrušen inline JS znefukční stránku víc než cookies (když pominu že chromium zprasil tuto možnost tím, že současně disabluje localStorage/sessionStorage bez možnosti dummy redefinice)
Takže jako další řešení mi vychází "vplížit" se do JS runtime a dělat tam Maxwellova démona, že budu dělat čurbes při pokusu o definici (nebo volání) daných funkcí (window["adbDetect"])
opravdu tyto reakcionářské odpovědi nepotřebuji, protože jsem si jimi už prošel, vyzkoušel a vyhnodnotil jako nefunkční
-
proč jsi se nezeptal rovnou na blokaci cookies? Teď působíš jako troll.
-
oplatim ti stejnou mincí, ale na rozdíl od tebe pravdivnou $~~~ působíš jak debil. o cookies nebylo ani slovo v původním dotazu.