Společnost Google implementaci nového API v Chromu , které umožňuje webovým aplikacím navazovat přímá síťová spojení pomocí protokolů TCP a UDP. V roce 2015 se konsorcium W3C pokusilo o standardizaci API „“, ale členové pracovní skupiny nedosáhli konsensu a vývoj tohoto API byl zastaven.
Potřeba přidání nového API je odůvodněna možností interakce se síťovými zařízeními, která používají vlastní protokoly fungující nad TCP a UDP a nepodporují interakci přes HTTPS nebo WebSockets. API Raw Sockets doplní již existující nízkoúrovňové programovací rozhraní v prohlížeči, jako jsou WebUSB, WebMIDI a WebBluetooth, které umožňují komunikaci s místními zařízeními.
Aby se minimalizoval negativní vliv na bezpečnost, API Raw Sockets povolí síťové požadavky pouze iniciované se souhlasem uživatele a omezené seznamem povolených hostitelů. Uživatel musí výslovně potvrdit první pokus o spojení s novým hostitelem. Pomocí speciálního příznaku bude moci uživatel vypnout zobrazování opakovaných žádostí o potvrzení operace při opakovaných připojeních k danému hostiteli. Aby se zabránilo DDoS útokům, bude intenzita požadavků přes Raw Sockets omezena a odesílání žádostí bude možné pouze po interakci uživatele se stránkou. UDP pakety přijaté od hostitelů, které uživatel neschválil, budou ignorovány a nedostanou se k webové aplikaci.
Počáteční implementace neplánuje vytváření poslouchajících soketů, ale v budoucnu se nevylučuje poskytnutí volání pro příjem příchozích spojení s localhostem nebo seznamem známých hostitelů. Také se zmiňuje potřeba ochrany před útoky „“ (útočník může na úrovni DNS změnit IP adresu pro schválené doménové jméno a získat přístup k jiným hostitelům). Přístup k doménám, které se resolvují na 127.0.0.0/8 a intranetové sítě, se plánuje blokovat (žádosti k localhostu budou povoleny pouze při výslovném zadání IP adresy v potvrzovací formě).
Mezi riziky, která mohou vzniknout při realizaci nového API, je jeho možné odmítnutí výrobci jiných prohlížečů, což může vést k problémům s kompatibilitou. Vývojáři enginů Mozilla Gecko a WebKit zatím svůj postoj k možnému zavedení API Raw Sockets, nicméně společnost Mozilla již dříve navrhla . V případě schválení v první fázi plánujeme aktivaci API Raw Sockets v Chrome OS a následně nabídnout uživatelům Chrome v dalších systémech.
Weboví vývojáři reagovali na nové API a navrhli mnoho nových nápadů na jeho využití v oblastech, kde API XMLHttpRequest, WebSocket a WebRTC nestačí (od vytváření webových klientů pro SSH, RDP, IMAP, SMTP, IRC a tiskových protokolů až po vývoj distribuovaných P2P systémů s DHT (Distributed Hash Table), podporu IPFS a interakci se specifickými protokoly IoT zařízení).
Zdroj: opennet.ru
