HTML-Editor Sicherheitsvalidierung

Übersicht

Wir haben eine Sicherheitsvalidierung für den HTML-Code-Editor in folgenden Bereichen hinzugefügt:

  • Formulare

  • Umfragen

  • Quizze

Dieses Update verhindert, dass unsicherer JavaScript-Code gespeichert wird. Es schützt Konten vor:

  • Cross-Site Scripting (XSS)

  • Cookie-Diebstahl

  • Token-/Session-Hijacking

  • Versuchen zur Kontoübernahme

Wenn unsicherer Code erkannt wird, blockiert das System die Speicheraktion und zeigt eine Fehlermeldung an.


INHALTSVERZEICHNIS

  1. Wie es funktioniert

  2. Was blockiert wird

    1. Zugriff auf Cookies

    2. Verwendung von eval()

    3. Verwendung von new Function()

    4. setTimeout() mit String

    5. setInterval() mit String

    6. Lesen aus localStorage

  3. Was erlaubt ist

  4. Wichtige Hinweise

  5. Wenn dein Code blockiert wird


Wie es funktioniert

Beim Bearbeiten von benutzerdefiniertem HTML:

  1. Öffne den Formular-/Umfrage-/Quiz-Builder

  2. Füge ein HTML-Element hinzu

  3. Klicke auf HTML bearbeiten

  4. Gib deinen Code ein

Der Editor scannt den Code in Echtzeit.

Wenn ein Sicherheitsproblem erkannt wird:

  • erscheint eine rote Fehlermeldung unterhalb des Editors

  • der Speichern-Button wird deaktiviert

  • der unsichere Code muss entfernt werden, bevor gespeichert werden kann


Was blockiert wird

Der Editor blockiert risikoreiche JavaScript-Muster, die sensible Daten gefährden könnten.

1. Zugriff auf Cookies

Blockiert:

document.cookie

Auch blockiert:

document['cookie']
window['document']['cookie']

Cookies können Authentifizierungsdaten enthalten. Zugriff darauf kann zu einer Kontoübernahme führen.


2. Verwendung von eval()

Blockiert:

eval("alert('hello')")

eval() führt beliebige Strings als Code aus und kann zum Verstecken von bösartigen Skripten verwendet werden.


3. Verwendung von new Function()

Blockiert:

new Function('return document.cookie')

Führt dynamisch String-basierten Code aus und birgt die gleichen Risiken wie eval().


4. setTimeout() mit String

Blockiert:

setTimeout("alert('hi')", 1000)

Erlaubt:

setTimeout(function () {
alert('hi')
}, 1000)

Strings werden vom Browser als Code ausgewertet, Funktionsreferenzen sind sicher.


5. setInterval() mit String

Blockiert:

setInterval('checkStatus()', 5000)

Erlaubt:

setInterval(() => checkStatus(), 5000)

6. Lesen aus localStorage

Blockiert:

localStorage.getItem("authToken")

Zugriff auf Authentifizierungs- oder Session-Daten kann sensible Informationen offenlegen.

Erlaubt:

localStorage.setItem("theme", "dark")
localStorage.removeItem("temp")
localStorage.clear()

Was erlaubt ist

  • Standard HTML

  • Sichere JavaScript-Logik

  • Arrow Functions

  • Funktionsreferenzen in Timern

  • Schreiben in localStorage

  • Nutzung von sessionStorage


Wichtige Hinweise

  • Die Erkennung ist nicht case-sensitive (eval, EVAL usw.).

  • Wenn dasselbe Problem mehrfach vorkommt, wird nur eine Fehlermeldung angezeigt.

  • Leere HTML-Felder sind erlaubt.

  • Reines HTML ohne Scripts ist erlaubt.


Wenn dein Code blockiert wird

Um das Problem zu beheben:

  • Entferne direkten Cookie-Zugriff

  • Vermeide eval() oder new Function()

  • Verwende Funktionsreferenzen statt String-basierter Timer

  • Lese keine Authentifizierungs- oder Session-Daten aus localStorage


War dieser Artikel hilfreich?