Google zdůvodňuje omezení rozhraní webRequest API používaného blokátory reklam

Vývojáři prohlížeče Chrome pokusil se ospravedlnit ukončení podpory blokovacího režimu provozu rozhraní webRequest API, které umožňuje měnit přijímaný obsah za chodu a aktivně se používá v doplňcích pro blokování reklamy,
ochrana proti malwaru, phishingu, špehování aktivity uživatelů, rodičovské kontroly a soukromí.

Motivy Google:

  • Režim blokování API webRequest vede k vysoké spotřebě zdrojů.
    Při použití tohoto API prohlížeč nejprve odešle doplňku všechna data obsažená v síťovém požadavku, doplněk je analyzuje a vrátí upravenou verzi k dalšímu zpracování v prohlížeči nebo vydá pokyny k blokování. V tomto případě nevznikají hlavní zpoždění ve fázi zpracování provozu doplňkem, ale z důvodu režijních nákladů na koordinaci provádění doplňku. Takové manipulace vyžadují zejména spuštění samostatného procesu k doplnění, jakož i použití IPC pro interakci s tímto procesem a mechanismy serializace dat;

  • Doplněk zcela řídí veškerý provoz na nízké úrovni, což otevírá obrovské možnosti pro zneužití a porušení soukromí. Podle statistik Google 42 % všech detekovaných škodlivých doplňků používalo webRequest API. Je třeba poznamenat, že každý měsíc jsou v katalogu Internetového obchodu Chrome zablokovány pokusy o umístění v průměru 1800 XNUMX škodlivých doplňků. Bohužel nám kontrola neumožňuje zachytit všechny škodlivé doplňky bez výjimky, takže pro zvýšení ochrany bylo rozhodnuto omezit doplňky na úrovni API. Hlavní myšlenkou je poskytnout doplňkům přístup ne k veškerému provozu, ale pouze k datům, která jsou nezbytná k implementaci zamýšlené funkcionality. Zejména pro blokování obsahu není nutné poskytnout doplňku úplný přístup ke všem důvěrným uživatelským datům;
  • Navrhované náhradní deklarativní API deklarativníNetRequest se stará o veškerou práci s vysoce výkonným filtrováním obsahu a vyžaduje pouze doplňky k načtení pravidel filtrování. Doplněk nemůže zasahovat do provozu a soukromá data uživatele zůstávají nedotknutelná;
  • Google zohlednil mnoho připomínek ohledně nedostatečné funkčnosti deklarativního NetRequest API a rozšířil limit počtu filtrovacích pravidel z původně navrhovaných 30 tisíc na rozšíření na globální maximum 150 tisíc a přidal také možnost dynamicky měnit a přidávat pravidla, odstraňovat a nahrazovat HTTP hlavičky (Referer, Cookie, Set-Cookie) a parametry požadavků;
  • Pro podniky je možné použít blokovací režim provozu webRequest API, protože politiku používání doplňků určuje správce, který rozumí vlastnostem infrastruktury a je si vědom rizik. Například specifikované API lze použít v podnicích k zaznamenávání toků provozu zaměstnanců a integraci s interními systémy;
  • Cílem Google není podkopávat nebo potlačovat doplňky pro blokování reklam, ale umožnit vytváření bezpečnějších a výkonnějších blokátorů reklam;
  • Neochota opustit blokovací režim fungování rozhraní webRequest API spolu s novým deklarativeNetRequest je vysvětlena přáním omezit přístup doplňků k důvěrným datům. Pokud necháte rozhraní webRequest API tak, jak je, většina doplňků nebude používat bezpečnější deklarativníNetRequest, protože při výběru mezi zabezpečením a funkčností si většina vývojářů obvykle vybere funkčnost.

Námitky vývojáři dodatky:

  • Provádějí vývojáři doplňků testy vykazují nevýznamný celkový dopad na výkon doplňků pro blokování reklam (během testování byl porovnáván výkon různých doplňků, ale bez zohlednění režie dodatečného procesu, který koordinuje provádění handlerů v režimu blokování rozhraní webRequest API);
  • Úplně přestat podporovat API, které se aktivně používá v doplňcích, není praktické. Namísto jeho odstranění můžete přidat samostatné oprávnění a přísně kontrolovat přiměřenost jeho použití v doplňcích, což by ušetřilo autory mnoha oblíbených doplňků od úplného přepracování jejich produktů a vyhnuli se ořezávání funkčnosti;
  • Chcete-li snížit režijní náklady, nemůžete API smazat, ale předělat jej na základě mechanismu Promise, podobně jako implementace webRequest ve Firefoxu;
  • Navrhovaná alternativa, declarativeNetRequest, nepokrývá všechny potřeby vývojářů doplňků pro blokování reklam a zabezpečení/ochranu soukromí, protože neposkytuje plnou kontrolu nad síťovými požadavky, neumožňuje použití vlastních filtrovacích algoritmů a neumožňuje použití složitých pravidel, která se vzájemně překrývají v závislosti na podmínkách;
  • Se současným stavem deklarativního NetRequest API je nemožné znovu vytvořit stávající funkčnost doplňků uBlock Origin a uMatrix beze změny a další vývoj portu NoScript pro Chrome je také zbytečný;
  • Obavy o soukromí jsou přitažené za vlasy, protože neblokující režim rozhraní webRequest API pouze pro čtení je ponechán na svém místě a stále umožňuje škodlivým doplňkům řídit veškerý provoz, ale neposkytuje možnost zasahovat do něj na létat (změňte obsah, umístěte své reklamy, spusťte těžaře a analyzujte obsah vstupních formulářů lze použít po dokončení načítání stránky);
  • Vývojáři prohlížečů Statečný, Opera и Vivaldi, postavené na enginu Chromium, hodlají ve svých produktech ponechat podporu pro režim blokování webRequest.

Zdroj: opennet.ru

Přidat komentář