A Google vállalat a Chrome új API-jának megvalósítása , amely lehetővé teszi a webalkalmazások számára, hogy közvetlen hálózati kapcsolatokat létesítsenek TCP és UDP protokollok használatával. 2015-ben a W3C konzorcium már tett kísérletet az API standardizálására „„, de a munkacsoport tagjai nem értek el konszenzust, így az API fejlesztése leállt.
Az új API-ra való szükségesség azzal magyarázható, hogy lehetővé teszi a felhasználói eszközökkel való interakciót, amelyek saját protokollokat használnak, amelyek a TCP és UDP felett működnek, és nem támogatják az HTTPS vagy WebSockets általi interakciót. A Raw Sockets API kiegészíti a böngészőben már meglévő alacsony szintű programozási interfészeket, mint a WebUSB, WebMIDI és WebBluetooth, amelyek lehetővé teszik a helyi eszközökkel való interakciót.
A Raw Sockets API biztonságra gyakorolt negatív hatásának elkerülése érdekében csak felhasználói beleegyezéssel kezdeményezett hálózati hívásokat fogad el, és ezeket a felhasználó által engedélyezett hostok listájára korlátozza. A felhasználónak kifejezetten meg kell erősítenie az első kapcsolatfelvételi kísérletet egy új host esetén. Egy különleges zászló segítségével a felhasználó letilthatja a művelet megerősítésére vonatkozó ismételt kérések megjelenítését a további kapcsolatok során ugyanannál a hostnál. A DDoS-támadások megelőzése érdekében a Raw Sockets-en keresztüli hívások intenzitását korlátozni fogják, és kérések csak akkor küldhetők, miután a felhasználó interakcióba lépett az oldallal. Az olyan UDP-csomagokat, amelyeket a felhasználó által nem engedélyezett hostoktól kaptak, figyelmen kívül hagyják, és nem jutnak el a webalkalmazásig.
A kezdeti megvalósítás nem tartalmazza hallgató socketek létrehozását, de a jövőben nem zárják ki a localhost vagy az ismert hostok listájáról érkező bejövő kapcsolatok fogadását. Ezenkívül említést nyer a „” támadások elleni védelem szükségessége (a támadó DNS szinten változtathatja meg a felhasználó által engedélyezett domain név IP-címét, és hozzáférhet más hostokhoz). A 127.0.0.0/8-ra és intranetre történő feloldásra kerülő domainekhez való hozzáférést tervezik blokkolni (a localhost-ra való hívások engedélyezése csak akkor javasolt, ha kifejezetten az IP-cím beírása történik a megerősítési űrlapba).
Az új API megvalósításával kapcsolatos kockázatok között említik, hogy más böngészők gyártói esetleg nem fogadják el, ami kompatibilitási problémákhoz vezethet. A Mozilla Gecko és a WebKit motorok fejlesztői még nem alakították ki a Raw Sockets API esetleges megvalósításáról, de a Mozilla korábban már javasolt egy hasonló API-t a Firefox OS (B2G) projekt keretében. . Ha az első szakaszban jóváhagyásra kerül a Raw Sockets API, azt a Chrome OS-ben aktiválják, és csak ezt követően kínálják fel a Chrome felhasználóinak más rendszerekben.
A webfejlesztők nyilatkoztak az új API-ról, és sok új ötletet osztottak meg annak alkalmazásáról olyan területeken, ahol az XMLHttpRequest, WebSocket és WebRTC API-k nem elegendők (böngészőalapú kliensek készítése SSH, RDP, IMAP, SMTP, IRC és nyomtatási protokollokhoz, valamint elosztott P2P rendszerek fejlesztése DHT (Elosztott Hashelő Tábla) támogatásával, IPFS támogatásával és specifikus IoT eszközök protokolljaival való interakcióval).
Forrás: opennet.ru
