 
         
        CORS (Cross-Origin Resource Sharing) ist ein Sicherheitsmechanismus, der von Webbrowsern implementiert wird, um zu kontrollieren, welche Webseiten auf Ressourcen von anderen Domains zugreifen dürfen. Standardmäßig blockieren Browser aus Sicherheitsgründen sogenannte Cross-Origin-Anfragen, also Anfragen von einer Webseite an eine andere Domain, ein anderes Protokoll oder einen anderen Port.
Ohne CORS könnten bösartige Webseiten im Hintergrund Anfragen an andere Server senden (z. B. API-Server oder Banking-Seiten), wodurch sensible Daten gestohlen oder missbraucht werden könnten (Cross-Site Request Forgery, CSRF). CORS sorgt dafür, dass nur explizit erlaubte Webseiten auf Ressourcen zugreifen dürfen.
Wenn eine Webanwendung eine Cross-Origin-Anfrage stellt (z. B. von http://example.com an https://api.example.com), sendet der Browser automatisch eine CORS-Anfrage. Der Server kann dann in den HTTP-Headern antworten, ob die Anfrage erlaubt ist:
Ohne CORS-Header:
Der Browser blockiert die Anfrage.
Mit CORS-Headern:
Der Server kann mit Access-Control-Allow-Origin: * (alle Domains) oder einer bestimmten Domain (Access-Control-Allow-Origin: https://example.com) antworten. Damit wird der Zugriff erlaubt.
Für einige Anfragen (z. B. mit PUT, DELETE, speziellen Headern) führt der Browser einen Preflight-Request mit der OPTIONS-Methode aus. Der Server muss dann mit den richtigen CORS-Headern antworten, um die Hauptanfrage zu ermöglichen.
CORS ist eine wichtige Sicherheitsmaßnahme, die verhindert, dass unerlaubte Webseiten auf fremde Ressourcen zugreifen. Entwickler müssen serverseitig die richtigen Header setzen, um den Zugriff für legitime Clients zu erlauben.
Ein CSRF-Token (Cross-Site Request Forgery-Token) ist ein Sicherheitsmechanismus, der zur Abwehr von Cross-Site Request Forgery (CSRF)-Angriffen verwendet wird. Es handelt sich um ein zufällig generiertes Token, das in Form eines versteckten Felds in einem Webformular oder als Teil einer Anfrage an den Server eingefügt wird. Dieses Token dient dazu, die Authentizität einer Anfrage zu überprüfen und sicherzustellen, dass die Anfrage von einem legitimen Benutzer stammt und nicht von einem Angreifer.
Die Funktionsweise eines CSRF-Tokens ist wie folgt:
Beim Anmelden oder beim Erstellen eines Kontos auf einer Website erhält der Benutzer ein CSRF-Token. Dieses Token ist nur für diese Sitzung oder für einen begrenzten Zeitraum gültig.
Das CSRF-Token wird auf dem Server gespeichert und mit dem Benutzerkonto oder der Sitzung verknüpft.
Jedes Mal, wenn der Benutzer eine Aktion ausführt, die eine Anfrage an den Server erfordert, wird das CSRF-Token in die Anfrage aufgenommen, normalerweise in Form eines versteckten Formularfelds.
Der Server prüft, ob das CSRF-Token in der Anfrage mit dem auf dem Server gespeicherten Token übereinstimmt. Wenn die Tokens nicht übereinstimmen oder fehlen, wird die Anfrage als ungültig abgelehnt, da sie möglicherweise von einem Angreifer stammt.
Wenn das CSRF-Token korrekt ist, wird die Anfrage als legitim akzeptiert, und die Aktion wird ausgeführt.
Durch die Verwendung von CSRF-Tokenen wird sichergestellt, dass nur berechtigte Benutzeraktionen akzeptiert werden, da ein Angreifer normalerweise keinen Zugriff auf das CSRF-Token eines anderen Benutzers hat. Dies erschwert es Angreifern erheblich, erfolgreiche CSRF-Angriffe durchzuführen.
Website-Entwickler sollten immer CSRF-Token-Prüfungen in ihren Anwendungen implementieren, insbesondere für Aktionen, die sensible Daten oder Aktionen auslösen. CSRF-Token-Prüfungen sind ein bewährter Sicherheitsmechanismus und ein wichtiger Bestandteil der Sicherheitsstrategie bei der Entwicklung von Webanwendungen.
Cross-Site Request Forgery (CSRF) ist eine Art von Cyberangriff, bei dem ein Angreifer unbemerkt Aktionen im Namen eines authentifizierten Benutzers auf einer Webseite ausführt. Dies geschieht, indem der Angreifer den Browser des Benutzers dazu bringt, ungewollte Anfragen an eine andere Website oder Webanwendung zu senden, auf der der Benutzer bereits angemeldet ist. Das Ziel eines CSRF-Angriffs ist es, Aktionen im Kontext des authentifizierten Benutzers auszuführen, ohne dass der Benutzer dies beabsichtigt.
Hier ist eine typische Vorgehensweise bei einem CSRF-Angriff:
Der Angreifer erstellt eine gefälschte Website oder einen bösartigen Link, der eine Aktion auf der Zielwebsite auslöst.
Der Benutzer, der auf die gefälschte Website gelockt wird oder den bösartigen Link öffnet, ist bereits bei der Zielwebsite angemeldet.
Die gefälschte Website oder der bösartige Link führt eine Anfrage an die Zielwebsite aus, um im Namen des Benutzers eine unerwünschte Aktion durchzuführen. Dies kann beispielsweise das Ändern des Passworts, das Auslösen von Geldtransfers oder das Posten von Inhalten in sozialen Medien sein.
Da die Anfrage von der Zielwebsite als authentifizierter Benutzer empfangen wird, führt die Website die Anfrage aus, ohne zu wissen, dass es sich um einen Angriff handelt.
CSRF-Angriffe sind insbesondere gefährlich, wenn die Zielwebsite vertrauliche oder sensible Aktionen zulässt, ohne zusätzliche Authentifizierungsschritte oder Bestätigungen vom Benutzer zu verlangen. Um sich vor CSRF-Angriffen zu schützen, können Website-Entwickler Maßnahmen wie CSRF-Token-Prüfungen implementieren, bei denen bei jeder Anfrage überprüft wird, ob ein gültiges CSRF-Token vorhanden ist. Benutzer können sich auch schützen, indem sie sich abmelden, wenn sie eine Website verlassen, und sicherstellen, dass sie keine nicht vertrauenswürdigen Links oder Websites öffnen. Moderne Webbrowser haben auch Schutzmechanismen gegen CSRF-Angriffe eingebaut.