Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: masofox 19. 01. 2018, 07:26:20

Název: Znemožnění detekce, zda je zapnutá webová konzole
Přispěvatel: masofox 19. 01. 2018, 07:26:20
Prý existuje v javascriptu možnost (možná nepřímo, nějak pomocci "side-channel"),  zjistit, zda je zapnutý vývojářské nástroje na webu, tedy hlavně konzole a to pak způsobí problém:
-bez otevřených vývojář. nástrojů a konzole se těžko "analyzuje" stránka
- otevřený vývojář. nástroj  skript pozná
čili jde o podobný problém, jako když virus zkoumá, jestli běží ve virtuální prostředí (jednak aby vznikl dojem, že je neškodný na první pohled a za druhé ztížit co dělá fakticky)


Nevíte jak to stránka zkoumá a jak tuto detekci znemožnit?

Napadají mě 2 možnosti:
-Console.log vrátí třeba false/vyjimku místo undefined
-stránka počítá rozměry plochy a  okna (window.height, documentElement.offset/client/scrollHeight)  - otevřené panely a dokovací okna ukrajují nějaký rozměr - pokud by to byla pravda, stačí detachovat okno konzole na jiný monitor (za pár tisíc přikoupit, zvrácený.cz)
Název: Re:znemožnění detekce, zda webová konzole je zapnutá
Přispěvatel: DK 19. 01. 2018, 09:49:00
10 sekund v Google - https://stackoverflow.com/questions/7798748/find-out-whether-chrome-console-is-open
Název: Re:Znemožnění detekce, zda je zapnutá webová konzole
Přispěvatel: masofox 19. 01. 2018, 10:23:36
Možná jsem to přehlédl, ale je tam i , jak znemožnit?
Název: Re:Znemožnění detekce, zda je zapnutá webová konzole
Přispěvatel: DK 19. 01. 2018, 11:33:35
Jak to znemoznit tam sice napsane neni, ale je tam napsana jedna moznost detekce - 'This solution takes advantage of the fact that toString() is not called on logged objects unless the console is open.'

Tento usecase by se dal teoreticky vyresit prepsanim console objektu za vlastni, nicmene ve vysledku zalezi na tom, jakou metodu detekce pouziva dana stranka.
Název: Re:Znemožnění detekce, zda je zapnutá webová konzole
Přispěvatel: Steve 19. 01. 2018, 11:36:36
Myslim ze postaci zabalit tu stranku do <iframe> a pak je jeji window objekt sandboxovan a nema nic s hlavnim window objektem.
Název: Re:Znemožnění detekce, zda je zapnutá webová konzole
Přispěvatel: mmm 19. 01. 2018, 14:19:07
Kód: [Vybrat]
window.innerHeight = window.outerHeight
po načtení okna může fungovat, pokud zjišťují podle rozdílu těch hodnot jako tento script https://github.com/sindresorhus/devtools-detect
Název: Re:Znemožnění detekce, zda je zapnutá webová konzole
Přispěvatel: Tomas2 19. 01. 2018, 20:27:27
většinu detekcí dříve vyřešil vzdálený debuging, kdy v contextu samotné stránky se nemění interní JS objecty.

Neměl by být velký problém odstranit či zamezit změně globálních objektů při otevření konzole, prakticky interaktivní režim není potřeba a co si pamatuji jinej důvod změny globálních objektů nebyl.

On ale i tak asi bude existovat side channel, js běží v jednom vláknu a konzole musí běžet v tom samém vláknu a je těžké sledovat kód a přitom ho neovlivnit aby to poznal.