Um sich vor Angriffen zu schützen, müssen Entwickler Sicherheitslücken minimieren und Sicherheitsfunktionen zu einer Anwendung hinzufügen. Glücklicherweise bietet der Browser im Web viele Sicherheitsfunktionen. Einige davon können von Entwicklern aktiviert werden, andere sind standardmäßig aktiviert, um Nutzer zu schützen.
Das Konzept der Sandbox
Moderne Webbrowser basieren auf dem Konzept der Sandbox. Eine Sandbox ist ein Sicherheitsmechanismus, mit dem eine Anwendung in einer eingeschränkten Umgebung ausgeführt wird. So wie in der Sandbox auf einem Spielplatz, wo Kinder innerhalb der Grenzen alles bauen können, ohne anderswo Unordnung zu verursachen, kann Anwendungscode in einer eingeschränkten Umgebung ausgeführt werden. Mit JavaScript können beispielsweise Elemente auf der Seite hinzugefügt und geändert werden, der Zugriff auf eine externe JSON-Datei ist jedoch möglicherweise eingeschränkt. Das liegt an einer Sandbox-Funktion namens Same-Origin.
Warum ist eine Sandbox erforderlich?
Nutzer laden jeden Tag beliebigen Code herunter und führen ihn mehrmals auf ihrem Computer oder Smartphone aus. Wenn jemand zu Ihnen sagt: „Hey, lade diese Anwendung herunter und führe sie aus!“, würden Sie wahrscheinlich kurz überlegen, ob die Anwendung aus einer vertrauenswürdigen Quelle stammt, sich über den Anbieter informieren oder Rezensionen sorgfältig lesen. Was ist, wenn Ihnen jemand eine URL sendet und sagt: „Lies dir diesen Blogpost durch“? Sie würden wahrscheinlich darauf klicken, ohne sich zu fragen, welche Art von JavaScript von dieser Website heruntergeladen wird.
Die Browser-Sandbox ist die wichtigste Funktion, die das Surfen im Web reibungslos macht, da sie die Ausführung von beliebigem Code sicherer macht.
Von Grund auf sicher
Wenn der Browser jede Webanwendung in einer Sandbox ausführt, müssen wir uns dann überhaupt um die Sicherheit kümmern? Auf jeden Fall.
Erstens sind Sandbox-Funktionen kein perfekter Schutz. Obwohl Browser Entwickler hart arbeiten, können Browser Sicherheitslücken aufweisen und Angreifer versuchen immer, die Sandbox zu umgehen (z. B. mit dem Spectre-Angriff).
Die Sandbox kann manchmal die Erstellung einer großartigen Weboberfläche behindern. Ein Browser kann beispielsweise eine Abrufanfrage für ein Bild blockieren, das auf einer anderen Domain gehostet wird. Sie können Ressourcen auf verschiedenen Domains freigeben, indem Sie Cross-Origin Resource Sharing (CORS) aktivieren. Wenn Sie dies jedoch nicht sorgfältig tun, können Sie eine Ressource für alle anderen im Web freigeben und die Sandbox im Grunde aufheben.
Zusammenfassung
Eine sichere Weboberfläche kann nur erreicht werden, wenn die Sicherheit in das Design Ihrer Anwendung integriert ist. Ein starkes Design beginnt mit dem Verständnis der vorhandenen Funktionen. In den nächsten beiden Leitfäden werden CORS und die Same-Origin-Richtlinie ausführlich behandelt.