Zum Schutz vor Angriffen müssen Entwickler Sicherheitslücken minimieren und Sicherheitsfunktionen zu einer Anwendung hinzufügen. Glücklicherweise bietet der Browser im Web viele Sicherheitsfunktionen. Einige sind für Entwickler verfügbar, während andere standardmäßig aktiviert sind, um Nutzer zu schützen.
Das Konzept einer „Sandbox“
Moderne Webbrowser basieren auf dem Konzept einer „Sandbox“. Eine Sandbox ist ein Sicherheitsmechanismus, mit dem eine Anwendung in einer eingeschränkten Umgebung ausgeführt wird. Genau wie bei der physischen Sandbox auf einem Spielplatz, in dem Kinder innerhalb der Grenzen alles erstellen können, was sie wollen, ohne an anderer Stelle ein Chaos zu machen, hat Anwendungscode die Freiheit, innerhalb einer eingeschränkten Umgebung auszuführen. JavaScript kann beispielsweise Elemente auf der Seite hinzufügen und ändern, hat aber möglicherweise keinen Zugriff auf eine externe JSON-Datei. Das liegt an der Sandbox-Funktion „Same-Origin“.
Warum ist eine Sandbox notwendig?
Jeden Tag laden Nutzer des Webs beliebigen Code herunter und führen ihn mehrmals auf ihrem Computer oder Smartphone aus. Wenn Ihnen jemand sagt: „Hey! Dann laden Sie diese Anwendung herunter und führen Sie sie aus.“ Dann sollten Sie überlegen, ob die Anwendung von einer vertrauenswürdigen Quelle stammt, lesen Sie die Informationen über den Anwendungsanbieter oder lesen Sie die Rezensionen sorgfältig. Wie wäre es, wenn Ihnen jemand eine URL mit dem Text „Lesen Sie diesen Blogpost“ sendet? Sie würden wahrscheinlich darauf klicken, ohne Fragen zu stellen wie „Welche Art von JavaScript wird diese Website herunterladen?“.
Die Browser-Sandbox ist die wichtigste Funktion, die das Surfen im Web reibungsloser macht, da sie das Ausführen von beliebigem Code sicherer macht.
Von Grund auf sicher
Wenn der Browser jede Webanwendung in einer Sandbox ausführt, sollte uns dann überhaupt die Sicherheit wichtig sein? Ja, absolut!
Zunächst einmal sind die Sandbox-Funktionen nicht der perfekte Schutzschild. Auch wenn Browserentwickler hart arbeiten, können Browser Sicherheitslücken haben und Angreifer versuchen immer, die Sandbox zu umgehen (wie mit Spectre Attack).
Die Sandbox kann manchmal dazu beitragen, für ein tolles Weberlebnis zu sorgen. Beispielsweise kann ein Browser eine Abrufanfrage für ein Bild blockieren, das auf einer anderen Domain gehostet wird. Sie können Ressourcen in verschiedenen Domains teilen, indem Sie Cross-Origin Resource Sharing (CORS) aktivieren. Wenn Sie dabei aber nicht vorsichtig vorgehen, können Sie eine Ressource für alle anderen Personen im Web freigeben, wodurch die Sandbox praktisch rückgängig gemacht wird.
Zusammenfassung
Ein sicheres Weberlebnis kann nur erreicht werden, wenn die Sicherheit in das Design Ihrer Anwendung verankert ist und ein gutes Design mit dem Verständnis vorhandener Features beginnt. In den nächsten beiden Leitfäden wird CORS und die Richtlinie für denselben Ursprung ausführlich beschrieben.