Ü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
Wie es funktioniert
Was blockiert wird
Zugriff auf Cookies
Verwendung von
eval()Verwendung von
new Function()setTimeout()mit StringsetInterval()mit StringLesen aus
localStorage
Was erlaubt ist
Wichtige Hinweise
Wenn dein Code blockiert wird
Wie es funktioniert
Beim Bearbeiten von benutzerdefiniertem HTML:
Öffne den Formular-/Umfrage-/Quiz-Builder
Füge ein HTML-Element hinzu
Klicke auf HTML bearbeiten
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
localStorageNutzung von
sessionStorage
Wichtige Hinweise
Die Erkennung ist nicht case-sensitive (
eval,EVALusw.).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()odernew Function()Verwende Funktionsreferenzen statt String-basierter Timer
Lese keine Authentifizierungs- oder Session-Daten aus
localStorage