𝗥𝗲𝗮𝗰𝘁 𝘃𝘀. 𝗫𝗦𝗦: 𝗪𝗵𝗲𝗿𝗲 𝘁𝗵𝗲 𝗚𝘂𝗮𝗿𝗱𝗿𝗮𝗶𝗹𝘀 𝗘𝗻𝗱
React ist standardmäßig sicher. Es maskiert Werte in JSX, um die meisten Script-Injektionen zu verhindern. Dies erzeugt jedoch ein falsches Sicherheitsgefühl. React reduziert das XSS-Risiko, aber es beseitigt es nicht.
Es gibt drei Hauptarten von XSS-Angriffen:
- Reflected XSS: Ein Angreifer sendet einen bösartigen Link. Der Server schickt das Skript sofort an den Benutzer zurück. Der Browser führt das Skript aus, da es so aussieht, als käme es von einer vertrauenswürdigen Website.
- Stored XSS: Der Angreifer speichert ein Skript auf Ihrem Server. Es befindet sich in Ihrer Datenbank, in Kommentaren oder in Logs. Jeder Benutzer, der diesen Inhalt betrachtet, führt das Skript aus.
- DOM Based XSS: Der Angriff findet vollständig im Browser statt. Der Angreifer manipuliert URL-Parameter oder clientseitige Eingaben, um Ihr JavaScript zu Fehlverhalten zu verleiten.
Wovor schützt React Sie eigentlich?
- Automatisches Escaping: React behandelt Strings als reinen Text. Wenn Sie versuchen, ein Script-Tag in JSX einzuschleusen, zeigt React den Text an, anstatt den Code auszuführen.
- Sicheres Rendering: React verwaltet, wie Inhalte erscheinen. Dies verringert die Notwendigkeit, gefährliche Browser-APIs zu verwenden.
- Weniger DOM-Manipulation: React übernimmt die Aktualisierungen. Sie müssen
document.write()oderinnerHTMLnicht mehr so häufig verwenden.
React bietet „Escape Hatches“ (Ausstiegsmöglichkeiten). Wenn Sie diese falsch verwenden, schaffen Sie Sicherheitslücken.
Achten Sie auf diese Fehler:
dangerouslySetInnerHTML: Diese Eigenschaft weist React an, das Escaping zu überspringen. Sie fügt HTML exakt so ein, wie es ist. Wenn der Inhalt nicht bereinigt ist, hat ein Angreifer gewonnen. Verwenden Sie zuerst DOMPurify, um Ihren Inhalt zu bereinigen.- Direkte DOM-Manipulation: Wenn Sie
element.innerHTMLmit Benutzereingaben verwenden, umgehen Sie die gesamte React-Sicherheit. - Drittanbieter-Bibliotheken: Einige externe Tools halten sich möglicherweise nicht an dieselben Sicherheitsregeln.
React stellt die Werkzeuge für die Sicherheit bereit. Sie müssen diese korrekt verwenden. Sicherheit liegt in Ihrer Verantwortung.
Quelle: https://dev.to/ayomidejhay/react-vs-xss-where-the-guardrails-end-6p2