Zdar, celou situaci sleduji, daří se mi to blokovat, i když ne uplně bezchybně a přívětivě. Kdo tomu chce rozumět, aťsleduje http reqesty
celé to blokování je to trochu složitější, dělají v tom ještě bordel, amatéři, kteří přispívají do easylistů adblock seznamů, a protože to jejich mozek nepochopí, vytváří tam takové prasičiny jako
@@||dopc.cz - přitom z tého domény se nic užitečného nenačítá, z ní se jen načítá bordel
A: Příčina je, že weby používají agresivní systém pro zavážku reklam (a když zjistí, že adblock je blokován <relativně jednoducho metodou, což je slabý bod, ale na obejití není moc funkčních řešení>, tak jako polymorfní virus změní strukturu HTML stránky, že se všechny srágory začínají načítat ze stejné domény a tudíž se složitě odliší od obsahu. Také se v tomto režimu snaží dokonce ještě víc zahnojit reklamama a šmírovat prohlížeč. Proto je cílem se do tohoto režimu nedostat.
B: na stránce běží inline script ... adbDetect=... ; který následně funkci vykoná (zašifrovaná), zjistí, zda je aktivní blokátor(nevím jak,chtělo by to zjistit) a podle toho nastaví (asi až při příští requestu–také není jisté)
Cílem je tedy, aby se web nedostal do režimu blití reklam, pak jste ztraceni :
1.Buď se vám budou ukazovat reklamy a stránky,
2. nebo se vám bude ukazovat část reklam (+ šmírování) a rozbije se layout stránky+ funkce.
A jako bonus, pokud vytvoříte síť.filtr, pak obvykle bude neúspěšný/rozbije funkce
Je jen pár řešení, která ne vždy jsou funkční:
- zakázat globálně ukládání cookies s jménem adb a adb.key (doplnkěm typu cookie controler,cookie monster). Pokud to nejde, tak blokovat cookies uplně na těchto webech, ale nepůjde přihlašování atd)
- vypnout inline scripty (což by mělo vyřadit detekci) - některých browserech nefunguje (přes ublock),Někde to jde vypnout přímo z browseru. Potíž je že to obvykle znefunčkní nějakou část funčnosti stránky (fotogalerii, videa)
- co by to mělo řešit: filtry do ublocku (html filtry) doména##^selektor – nový typ . Údajně to umí jen nejnovější firefox. Dříve filtry měly syntaxi ###script:contains
-Prohlížet stránky tak, že jsou oddělené každá od druhé (cookies se nesdílí mezi taby). Bohužel umí jen safari po nastavení a v anonymním režimu a údajně by to měl umět nejnovějsí firefox(Containers). Hodí se jen omezeně, na jednorázové přečtení a jen otevírání odkazů v nových tabech, kdy se cookies nepředá. Tudíž také omezené řešení
-změnit user agent na mobilní je jednoduché a elegantní řešení, pokud funguje.
- bohužel mi nefungují řešení inject scriptů, které se používají na "zlobivé stránky". (na odkazu výše je odkaz Assets.txt), bohužel lze vybírat jen z seznamu co je uvnitř, ale jsou tam různé funkce jako Defuséry, rušiče timeoutů, set-constant, -abort-inline-script(), -abort-on-property-write,.. Bohužel mi to nefungovalo. nevím proč.
Problém je, že seznam webů není kompletní, zhruba jde o (skupiny webů, koncovka cz):
- živě,sport, digiarena, mobilmania
-aktualne
- idnes,lidovky,expres
- reflex, info
blesk
Ideální cesta je mít řešení, které bude fungovat globálně. Bohužel některé filtry v ublocku (##script:inject ,###script:contains, ##^) musí mít vždy uvedenou doménu (nejsou globální) , naštěstí ,ale lze domény seskupovat :
blesk.cz,zive.cz,lidovky.cz###script:inject(abort-current-inline-script, adbDetect)
domény k whitelistování (nikoli allow,ale noop): cncenter.cz, iinfo.cz, (blesk.cz,centrum,cz), blokovat a.blesk.cz
Otázka na profíky
Objevil se mi problém: pokud si v chrome zakáži cookies (Blokovat), způsobít to, že přístup k window.sessionStorage vyhodí vyjímku a tedy ukončí vykonávaný skript video-player-fp.js (přibližně) – nefunguje přehrání videí (protože se předčasně ukončí ten skript kvůli neošetřené vyjímce). Nevíte jak na to?