Google
Die Notwendigkeit, eine neue API hinzuzufügen, erklärt sich aus der Möglichkeit, mit Netzwerkgeräten zu interagieren, die native Protokolle verwenden, die auf TCP und UDP basieren und die Kommunikation über HTTPS oder WebSockets nicht unterstützen. Es wird darauf hingewiesen, dass die Raw Sockets API die bereits im Browser verfügbaren Low-Level-Programmierschnittstellen WebUSB, WebMIDI und WebBluetooth ergänzen wird, die die Interaktion mit lokalen Geräten ermöglichen.
Um negative Auswirkungen auf die Sicherheit zu vermeiden, lässt die Raw Sockets API nur Netzwerkaufrufe zu, die mit Zustimmung des Benutzers initiiert und auf die vom Benutzer zugelassene Liste der Hosts beschränkt werden. Der Benutzer muss den ersten Verbindungsversuch für den neuen Host explizit bestätigen. Mit einem speziellen Flag kann der Benutzer die Ausgabe wiederholter Vorgangsbestätigungsanfragen für wiederholte Verbindungen zum selben Host deaktivieren. Um DDoS-Angriffe zu verhindern, wird die Intensität der Anfragen über Raw Sockets begrenzt und das Senden von Anfragen ist erst möglich, nachdem der Benutzer mit der Seite interagiert. UDP-Pakete, die von Hosts empfangen werden, die vom Benutzer nicht genehmigt wurden, werden ignoriert und erreichen die Webanwendung nicht.
Die anfängliche Implementierung sieht nicht die Erstellung von Listening-Sockets vor, aber in Zukunft ist es möglich, Aufrufe bereitzustellen, um eingehende Verbindungen von localhost oder einer Liste bekannter Hosts anzunehmen. Erwähnt wird auch die Notwendigkeit, sich vor Angriffen zu schützen.
Zu den Risiken, die bei der Implementierung einer neuen API entstehen können, gehört die mögliche Ablehnung durch Hersteller anderer Browser, was zu Kompatibilitätsproblemen führen könnte. Die Entwickler der Mozilla Gecko- und WebKit-Engines sind immer noch dabei
Web-Entwickler
Source: opennet.ru