XML-Markup mit Escape-Zeichen versehen

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 1 Minute Lesedauer
  • Verwenden Sie die Eigenschaft glide.ui.escape_text, um Escape-Zeichen für XML-Werte auf Parser-Ebene zu erzwingen, bevor sie an den Browser des Clients übertragen werden.

    Siteübergreifendes Skripting tritt auf, wenn ein Angreifer schädliches JavaScript in einen Einstiegspunkt einfügt. Die Plattform/Anwendung kann das schädliche JavaScript nicht mit Escape-Zeichen versehen, bevor es zur Ausführung an den Browser des Opfers übermittelt wird. Escaping bedeutet in diesem Kontext Folgendes:
    • & -> &
    • < --> <
    • > --> >
    • -->
    • ' --> '
    • / --> /

    Beispiel: <![CDATA[<script> alert('XSS-Angriff');</script> ]]>

    Escaping: <script>alert('XSS Attack');</script>

    Stellen Sie sicher, dass die Eigenschaft glide.ui.escape_text in der Tabelle „sys_properties“ vorhanden und auf „true“ festgelegt ist.

    Warnung:
    Dies ist eine Safe-Harbor-Eigenschaft, was bedeutet, dass der Wert nicht mehr geändert werden kann, nachdem er geändert wurde. Er kann nicht rückgängig gemacht werden.

    Weitere Informationen

    Attribut Beschreibung
    Eigenschaftsname glide.ui.escape_text
    Konfigurationstyp Systemeigenschaften (/sys_properties_list.do)
    Kategorie Validierung, Bereinigung und Codierung
    Zweck Durch das Escaping von XML wird sichergestellt, dass Browser das in nicht vertrauenswürdige Daten eingebettete schädliche JavaScript nicht analysieren und als JavaScript ausführen.
    • Ein böswilliger Benutzer kann einen XSS-Angriff versuchen, um entweder die Sitzung anderer Benutzer zu kapern oder den Benutzer auf eine schädliche Website umzuleiten.
    • Die Now Platform enthält Code zum Sichern von Cookies. Um ihn jedoch zu maskieren, muss diese Eigenschaft auf truefestgelegt werden.
    Empfohlener Wert Wahr
    Sicherheitsrisikobewertung 8.8
    Funktionale Auswirkung (Mittel) Diese Fehlerkorrektur erzwingt die XML-Codierung auf XML-Parser-Ebene in der Benutzeroberfläche. Dadurch werden die codierten Ergebnisse für den Benutzer gerendert, was sich je nach Instanzbenutzerinteraktion mit den resultierenden Daten auf die Funktionalität auswirken kann.
    Sicherheitsrisiko (Hoch) Die Eingabevalidierung muss in der Anwendung erfolgen, um sich gegen websiteübergreifende Skripting-Angriffe zu schützen. Diese Angriffe ermöglichen die Ausführung fremder Skripts in der Benutzersitzung im Kontext des angemeldeten Browsers. Angreifer können damit Sitzungsinformationen und vertrauliche Daten stehlen.
    Workaround

    Nachdem Sie diese Eigenschaft auf truefestgelegt haben, wird das Rendern der HTML-Tags in der Katalogelementbeschreibung oder im Hilfetext der Katalogelementvariablen angehalten. Möglicherweise können Sie die HTML-Formatierung für einige Felder nicht verwenden.

    Wenn jedoch die Eigenschaft glide.ui.escape_text deaktiviert ist, wird allen JEXL-Ausdrücken ein Ausgabe-Encoder vorangestellt:

    $⁠{JS:Ausdruck}

    $⁠{HTML:Ausdruck}

    oder

    $⁠{JS,HTML:Ausdruck}