EN

So aktivieren Sie sichere Cookies

In diesem Artikel:

Webanwendungen verwenden Cookies zur Benutzerauthentifizierung und Zugriffskontrolle. Cookies, die nicht gesichert sind, können über eine unverschlüsselte Verbindung übertragen werden. Ein Man-in-the-Middle-Angriff (MITM) kann dazu verwendet werden, den Inhalt dieser Cookies abzufangen, eine Sitzung zu entführen und Authentifizierungsdaten oder sensible Daten zu stehlen.

Lesen Sie im Folgenden mehr über das Sicherheitsattribut und andere Möglichkeiten zur Sicherung von Cookies.

Sicherheitsbewertung für sichere Cookies

Security Assessment Increase TLS Key Size

CVSS-Vektor: AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N

Was sind Cookies, und wie funktionieren sie?

Kurz gesagt, sind Browser-Cookies (Web-Cookies) Daten, die vom Server an den Client gesendet und dort gespeichert werden können. Wenn ein Server zum Beispiel eine HTTP-Anfrage erhält, kann er einen oder mehrere Set-Cookie-Header als Teil der Antwort einfügen.

Später kann der Browser das Cookie in einem Header zurückgeben, wenn er eine Anfrage stellt, um zu beweisen, dass die nachfolgende Anfrage von der gleichen Quelle stammt wie zu einem früheren Zeitpunkt. Auf diese Weise können Benutzer bei einer Anwendung angemeldet bleiben und müssen sich nicht bei jeder neuen Anfrage an einen Server neu anmelden.

Neben der Sitzungsverwaltung werden HTTP-Cookies auch verwendet, um Benutzerpräferenzen und -einstellungen zu speichern und das Benutzerverhalten zu verfolgen.

Cookies können anhand verschiedener Attribute so konfiguriert werden, dass sie unterschiedliche Eigenschaften haben. Sie können zum Beispiel mit den Attributen Expires und Max-Age so eingestellt werden, dass sie eine bestimmte Lebensdauer haben, d. h. nach einer bestimmten Zeit ablaufen. Sie können auch durch die Attribute Domain und Path auf bestimmte Domains oder Pfade beschränkt werden.

Darüber hinaus können Cookies so konfiguriert werden, dass sie sicher gesendet werden, indem verschiedene Attribute wie das Attribut Secure und andere verwendet werden.

Attribut „Sicher”

Dieses Attribut verhindert, dass Cookies von unbefugten Parteien oder Skripten eingesehen werden können. Darüber hinaus garantiert es, dass der Client das Cookie über eine verschlüsselte Anfrage unter Verwendung des HTTPS-Protokolls sendet.

Ein sicheres Cookie kann nur von Websites gesetzt werden, die das HTTPS-Protokoll verwenden, und kann von Browsern nur an solche Websites gesendet werden. Wenn das Sicherheitsattribut aktiviert ist, verhindern die Browser, dass Cookies über unverschlüsselte Kanäle gesendet werden. Dies garantiert die Vertraulichkeit des Cookies und seines Inhalts, wenn es zwischen Client und Server ausgetauscht wird.

Da sichere Cookies für einige Angriffe anfällig sind, können weitere Attribute mit oder anstelle des Attributs Secure verwendet werden. Diese sind das HttpOnly-Attribut und das SameSite-Attribut.

HttpOnly-Attribut

JavaScript hat standardmäßig Zugriff auf Cookies, was bedeutet, dass ein Angreifer, der ein Skript in eine Website einschleusen kann, auf Cookies zugreifen kann. Die Verwendung des HttpOnly-Attributs ist eine Möglichkeit, Cookies für clientseitige APIs wie JavaScript unzugänglich zu machen. Dadurch werden die Cookies vor Cookie-Klau-Techniken wie Cross-Site-Scripting (XSS) geschützt.

Auch mit diesem Attribut bleibt ein Cookie anfällig für Cross-Site-Tracing (XST) und Cross-Site-Request-Forgery (CSRF)-Angriffe.

SameSite-Attribut

Das SameSite-Attribut schützt vor CSRF-Angriffen, da es Servern die Möglichkeit gibt, festzulegen, wann Cookies als Antwort auf seitenübergreifende Anfragen gesendet werden können. Das Attribut hat drei mögliche Werte, um festzulegen, wie stark es durchgesetzt werden soll. Diese sind Strict, Lax und None.

Der Wert Strict erlaubt, dass ein Cookie nur an die Website gesendet wird, von der es stammt. Mit dem Wert „Lax“ können Cookies an eine Zieldomäne gesendet werden, auch wenn sie sich von der Ursprungsdomäne des Cookies unterscheidet, allerdings nur bei sicheren Anfragen wie GET, nicht bei Cookies von Drittanbietern. None erlaubt das Senden von Cookies sowohl bei Ursprungsanfragen als auch bei seitenübergreifenden Anfragen, d. h. bei Cookies von Dritten. Allerdings muss dies in einem sicheren Kontext geschehen, d. h. über die Verwendung des Attributs Secure.

Warum schaffen unsichere Cookies Sicherheitslücken?

Cookies, die nicht über verschlüsselte Kanäle gesendet werden, können von jedem, der eine Verbindung abhört, abgefangen werden. Dies würde es einer Partei ermöglichen, die Cookies zu stehlen und ihren Inhalt zu lesen.

Wenn das Cookie sensible Informationen wie Authentifizierungsdaten enthält, könnte sich ein Angreifer als das Opfer ausgeben, dessen Sitzung entführen und möglicherweise weitere Daten stehlen oder Benutzerrechte ausnutzen.

Haben sichere Cookies Schwachstellen?

Während die oben genannten Attribute zweifellos hilfreich sind, bezieht sich ihre Sicherheit hauptsächlich auf die Vertraulichkeit des Cookies. Nehmen wir zum Beispiel an, jemand hat Zugang zur Festplatte des Kunden. In diesem Fall kann er immer noch auf das Cookie zugreifen und seine Informationen ändern, wodurch die Integrität des Cookies gestört wird, auch bekannt als „schwache Integrität“.

Das Problem der schwachen Integrität von Cookies wird in der Common Weakness Enumeration unter anderem unter CWE-565 und CWE-784 behandelt. Es bezieht sich auf die Gefahr, sich auf Cookies ohne angemessene Validierung und Integritätsprüfung zu verlassen und solche Cookies für sicherheitskritische Vorgänge zu verwenden.

Diese und andere Arten inhärenter Schwachstellen und Sicherheitsüberlegungen machen selbst sichere Cookies in mehreren Fällen angreifbar. Zu den Angriffen, mit denen Cookies kompromittiert werden können, gehören u. a. Cross-Site-Scripting (XSS)- und Cross-Site-Request-Forgery (CSRF)-Angriffe.

Aus diesem Grund verwenden einige Browser das Attribut „Sicher“ nicht und erlauben HTTP-Sites nicht einmal, Cookies mit diesem Attribut zu setzen. Unabhängig davon, ob diese Attribute verwendet werden, empfehlen einige Quellen, keine sensiblen Daten in Cookies zu speichern.

Präventionsleitfaden für SSL/TLS-Schwachstellen

Leitfaden

Erfahren Sie, wie Sie verschiedene Arten von SSL/TLS-Schwachstellen erkennen und verhindern können.

Mehr erfahren

So aktivieren Sie sichere Cookies

Um Cookies so einzustellen, dass sie eine reine HTTP-Verbindung sichern, müssen Sie das Web-Framework konfigurieren, das die Cookies ausgibt. Um sichere Cookies in PHP oder Django zu konfigurieren, lesen Sie die folgenden Anleitungen. Um das sichere Cookie-Attribut in Java, ASP.NET und anderen Frameworks zu setzen, lesen Sie die OWASP-Seite Secure Cookie Attribute.

PHP

In PHP konfigurieren Sie die Cookie-Einstellungen für alle ausgelieferten Websites. Setzen Sie in Ihrer Datei /etc/php/php.ini die folgenden Werte:

session.cookie_secure = 1
session.cookie_httponly = 1

Django

In Django nehmen Sie die folgenden Cookie-Einstellungen in Ihrer Projektvoreinstellungsdatei vor:

SESSION_COOKIE_HTTPONLY=true
SESSION_COOKIE_SECURE=true

Häufig gestellte Fragen

Das Attribut „Sicher“ garantiert, dass Cookies nur über verschlüsselte Kanäle unter Verwendung des HTTPS-Protokolls gesendet werden. Wenn ein Cookie dieses Attribut hat, sendet ein Server es nicht an eine Website, die HTTPS nicht unterstützt.

Sind sichere Cookies sicher?

Sichere Cookies sind nicht ohne Schwachstellen. Dieses Attribut bietet jedoch Schutz, indem es sicherstellt, dass Cookies und die in ihnen enthaltenen sensiblen Daten nur über einen verschlüsselten Kanal zwischen Browsern und Websites ausgetauscht werden.

Das HttpOnly-Attribut macht Cookies für JavaScript unzugänglich. Dies hilft, CSRF und ähnliche Angriffe abzuwehren.

Erhalten Sie jetzt kostenlos einen schnellen Sicherheitsbericht für Ihre Website

Wir analysieren derzeit https://example.com
Wir scannen derzeit https://example.com
Status des Scans: In Bearbeitung
Scan target: http://example.com/laskdlaksd/12lklkasldkasada.a
Datum: 25/01/2023
Crashtest Security Suite prüft auf:
Information disclosure Known vulnerabilities SSL misconfiguration Open ports
Scanauftrag ausfüllen
Bitte geben Sie Ihre Daten ein, um die schnelle Sicherheitsüberprüfung zu erhalten.
Ein Sicherheitsspezialist analysiert gerade Ihren Scan-Bericht.
Bitte geben Sie Ihre Telefon-/Handynummer an, damit wir Ihre Identität überprüfen können:
Vielen Dank.
Wir haben Ihren Antrag erhalten.
Sobald Ihr Sicherheitsaudit fertig ist, werden wir Sie benachrichtigen.
Crashtest Security Tool Becomes Part of Veracode