Webtechnologien: Unterschied zwischen den Versionen
Drlue (Diskussion | Beiträge) |
Drlue (Diskussion | Beiträge) |
||
| Zeile 36: | Zeile 36: | ||
==== Lösungen ==== | ==== Lösungen ==== | ||
Generell verliert diese Art der '''CSRF''' Attacke an bedeutung. Es gibt mehrere Möglichkeiten eine Webseite dagegen abzusichern. | Generell verliert diese Art der '''CSRF''' Attacke an bedeutung. Es gibt mehrere Möglichkeiten eine Webseite dagegen abzusichern. | ||
* '''sameSite Cookie''' | * '''sameSite Cookie Attribut''' - Beschränkt das senden von Cookies wenn der Request nicht von der Ursprünglichen Webseite, welche auch das Cookie gesendet hat, kommt. | ||
* '''CSRF Token''' - Wird ein '''POST''' Request gemacht, so muss zuerst ein '''Token''' geholt werden, dieses wird dann beim '''POST''' mitgesendet und validiert. Wie bereits erwähnt, können Requests von einer bösartigen Webseite gesendet, die Responses aber nicht verarbeitet werden. Somit kann der '''CSRF Token''' nicht geholt und dem ungewünschten Request angehängt werden. | |||
=== XSS === | === XSS === | ||
Version vom 24. Januar 2021, 17:02 Uhr
HTTP Protokoll
Aufbau HTTP Request/Response
Methoden
Zustandslosigkeit
HTML
Javascript
CSS
Json
Single Page Application
AJAX
SPA Frameworks
Anwendungsstate speichern
Sicherheitsrisiken
Im folgenden werden ausgewählte Sicherheitsrisiken im Zusammenhang mit Webseiten erläutert.
CSRF
Cross Site Request Forgery, ist eine Angriffsmethode bei dem die gespeicherten Anmeldedaten des Benutzers verwendet werden um Requests durchzuführen, die ohne die Zustimmung des Benutzers erfolgen.
Unterschieben der URL
Ist ein Benutzer bei einer Webseite A angemeldet, so wird diese Anmeldeinformation als Cookie im Browser gespeichert. Bei jedem Request an Webseite A wird das Cookie vom Browser mitgesendet, und der Server verwendet es um den Benutzer zu authentifizieren. Das Cookie wird auch mitgesendet wenn die Anfrage nicht von Webseite A selbst, sondern von einer anderen Webseite B stammt. Somit können schadhafte Requests von einer beliebigen Webseite ausgeführt werden, wenn der Server keine CSRF Schutzmechanismen implementiert hat.
Ein auslesen von Daten durch eine bösartige Webseite ist hierbei jedoch nicht möglich. Moderne Browser senden zwar die Anfrage an den Server, die Antwort jedoch, wird durch den Browser nicht an das Javascript der Schadseite weitergeleitet. Der Grund hierfür ist die Same-Site-Policy, oder restriktionen von CORS
Beispiel
Angenommen der Benutzer ist auf der Webseite https://vol.at angemeldet. Um einen Kommentar für einen Artikel zu erstellen, erfolg ein POST Request auf https://vol.at/14512/.
Der Angreifer bringt auf irgendeine Weise (z.B.: Phishing Mails) den Benutzer dazu, auf seine eigene Webseite zu navigieren.
Beim Aufruf dieser bösen Webseite kann nun direkt über Javascript ein POST Request auf https://vol.at/14512/ mit einem unangebrachten Kommentar ausgeführt werden.
Lösungen
Generell verliert diese Art der CSRF Attacke an bedeutung. Es gibt mehrere Möglichkeiten eine Webseite dagegen abzusichern.
- sameSite Cookie Attribut - Beschränkt das senden von Cookies wenn der Request nicht von der Ursprünglichen Webseite, welche auch das Cookie gesendet hat, kommt.
- CSRF Token - Wird ein POST Request gemacht, so muss zuerst ein Token geholt werden, dieses wird dann beim POST mitgesendet und validiert. Wie bereits erwähnt, können Requests von einer bösartigen Webseite gesendet, die Responses aber nicht verarbeitet werden. Somit kann der CSRF Token nicht geholt und dem ungewünschten Request angehängt werden.