Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Sicherheit

Web-Sicherheit ist die Praxis, Websites und ihre Benutzer vor Schäden zu schützen, die durch bösartige Dritte, die allgemein Angreifer genannt werden, verursacht werden können.

Die Art der Schäden kann rufschädigend, finanziell oder sogar physisch sein. Sie können auf Daten abzielen, die für Benutzer privat gehalten werden sollten, oder auf Aktionen, die nur bestimmten Benutzern zur Verfügung stehen sollten. Die Motivationen der Angreifer können finanzieller, politischer oder persönlicher Natur sein.

In diesem Teil von MDN haben wir Leitfäden geschrieben, um Webentwicklern zu helfen zu verstehen, wie sie ihre Websites und ihre Benutzer vor diesen Angriffen schützen können.

Die Dokumentation ist in vier Hauptabschnitte unterteilt:

Auf dieser Seite werden wir jeden dieser Abschnitte einführen und die darin enthaltenen Leitfäden auflisten. Zuerst werden wir jedoch die grundlegenden Sicherheitspraktiken auflisten, die Webentwickler befolgen sollten.

Grundlegende Sicherheitspraktiken

Web-Sicherheit kann überwältigend sein: Es gibt viele potenzielle Bedrohungen, Verteidigungen sind oft komplex und vielschichtig, und die Bedrohungen, die Sie berücksichtigen müssen, hängen stark davon ab, was Ihre Website genau macht. In diesem Abschnitt fassen wir zusammen, was unserer Meinung nach die wichtigsten Maßnahmen sind, die Sie ergreifen können, um den meisten Bedrohungen zu begegnen, denen Sie begegnen werden.

  • Verwenden Sie HTTPS, um alle Seiten und Unterressourcen Ihrer Website bereitzustellen.

  • Setzen Sie eine Content Security Policy (CSP) für Ihre Website.

    • Wenn möglich, setzen Sie eine strikte CSP, aber wenn nicht, setzen Sie zumindest eine Richtlinie, die Inline-JavaScript verbietet.

    • Setzen Sie die CSP-Direktive frame-ancestors, um zu steuern, ob Seiten in verschachtelten Browser-Kontexten eingebettet werden können.

    • Setzen Sie die CSP-Direktive require-trusted-types-for, um sicherzustellen, dass Inhalte bereinigt wurden, bevor sie potenziell gefährlichen APIs übergeben werden.

  • Kontrollieren Sie Cross-Origin-Anfragen: Überlegen Sie, ob und unter welchen Umständen Sie andere Herkünfte zulassen möchten, um Anfragen an Ihre Website zu stellen, und verwenden Sie Fetch Metadata, um dies zu steuern.

  • Beschränken Sie den Zugriff auf Cookies, die Ihre Website setzt. Insbesondere:

    • Setzen Sie das Attribut SameSite auf Strict, wenn möglich, oder Lax sonst.
    • Setzen Sie die Attribute Secure und HttpOnly, wenn möglich.
    • Minimieren Sie die Lebensdauer von Cookies, die verwendet werden, um angemeldete Benutzer darzustellen.
  • Verarbeiten Sie Eingaben sicher: Wenn Ihre Website Eingaben vom Benutzer oder einem anderen System akzeptiert, validieren Sie diese. Bevor Sie Eingaben in die Seiten Ihrer Website integrieren, führen Sie Ausgabe-Codierung oder Bereinigung durch.

  • Verwenden Sie Subresource Integrity für alle Skripte, die Sie aus externen Quellen laden (wie CDNs).

  • Verwenden Sie starke Authentifizierungsmethoden: Wenn Sie Benutzer auf Ihrer Website authentifizieren, verwenden Sie nicht nur Passwörter. Passkeys sind die sicherste Authentifizierungsmethode, aber wenn Sie diese nicht verwenden können, sind zeitbasierte Einmalpasswörter (TOTP) sicherer als traditionelle Passwörter.

  • Befolgen Sie gute operationelle Sicherheitspraktiken: Kontrollieren Sie den Zugriff auf den Quellcode Ihres Projekts, verwalten Sie Geheimnisse sicher und kontrollieren Sie Ihre Abhängigkeiten.

Siehe auch die Secure Web Application Guidelines.

Angriffe

Der Abschnitt Angriffe enthält Leitfäden zu häufigen Angriffen auf Websites. Ein Angriff ist eine spezielle Technik, die ein Angreifer verwenden kann, um Websites oder deren Benutzer zu schädigen.

Jeder Leitfaden behandelt einen bestimmten Angriff (oder eine Klasse verwandter Angriffe), erklärt, wie er funktioniert, unter welchen Bedingungen eine Website anfällig wird und wie man sich dagegen verteidigen kann.

Die beschriebenen Angriffe umfassen:

Verteidigungen

Der Abschnitt Verteidigungen enthält Leitfäden zu Funktionen oder Praktiken, die Sie verwenden können, um sich vor verschiedenen Angriffen zu schützen. Im Allgemeinen gibt es eine viele-zu-viele Beziehung zwischen Angriff und Verteidigungen. Das bedeutet, dass eine einzelne Verteidigung gegen mehrere Angriffe schützen kann und die Verteidigung gegen einen einzelnen Angriff mehrere Verteidigungen erfordern kann, um eine tiefgehende Verteidigung zu gewährleisten.

In diesem Abschnitt dokumentieren wir die folgenden Verteidigungen:

Beachten Sie, dass nicht alle Verteidigungen in diesem Abschnitt beschrieben werden: Einige, wie CSP oder Trusted Types, werden innerhalb des jeweiligen Technologiebereichs beschrieben.

Bedrohungsmodellierung

Nicht alle Websites sind anfällig für alle Angriffe: Welche Angriffe ein Entwickler berücksichtigen muss, hängt von den Funktionen ab, die die Website bietet, und wie diese implementiert sind.

Bedrohungsmodellierung ist ein Prozess, den Webentwickler befolgen können, um eine strukturierte Darstellung der potenziellen Bedrohungen, denen ihre Website ausgesetzt ist, und der entsprechenden Verteidigungen zu entwickeln, die sie anwenden sollten.

Das bedeutet, Bedrohungsmodellierung hilft Ihnen zu verstehen, gegen welche Angriffe Sie sich verteidigen müssen und wie Sie sich gegen sie verteidigen können.

Authentifizierung

Authentifizierung ist der Prozess der Überprüfung, dass eine Entität — wie ein Benutzer einer Website — tatsächlich diejenige ist, die sie vorgibt zu sein. Sie müssen wahrscheinlich über Authentifizierung nachdenken, wenn Sie möchten, dass Benutzer sich auf Ihrer Website anmelden können.

Wenn Benutzer sich auf Ihrer Website anmelden können, gibt es in der Regel Dinge, die angemeldete Benutzer tun können, oder Daten, auf die sie zugreifen können, die Sie nicht allgemein zugänglich machen möchten. Dies macht den Zugriff auf Benutzerkonten zu einem der wertvollsten Ziele für Angreifer.

In diesem Set von Leitfäden betrachten wir die Haupttechniken zur Benutzerauthentifizierung im Web und gute Praktiken dafür. Wir beschreiben vier Methoden:

In diesem Abschnitt skizzieren wir auch gute Praktiken für das Sitzungsmanagement, das beschreibt, wie eine Website den Anmeldestatus eines Benutzers speichert.

HTTP Observatory

Mit dem HTTP Observatory Tool können Sie Ihre Website scannen, um zu überprüfen, ob sie bestimmte gute Sicherheitspraktiken befolgt. Unsere praktischen Sicherheitsimplementierungsleitfäden bieten Erklärungen dazu, wie Sie diese Praktiken implementieren und gegen welche Bedrohungen sie schützen.

Siehe auch