Zum Inhalt springen
BeispielWerk
English

Format-Platzhalter wie %s und {0} testen

Platzhalter wie %s, %n und %x, Positionsangaben wie %1$s oder {0} und Ausdrücke wie ${7*7} haben in Formatstrings und Template-Systemen eine besondere Bedeutung. Die Seite zeigt sie als Eingabetext, dazu ein einzelnes Prozentzeichen im Satz. Damit lässt sich prüfen, ob die eigene Anwendung Eingaben nicht als Formatstring oder Ausdruck auswertet, sondern unverändert anzeigt.

14 Varianten auf einer Seite, jede mit eigenem Kopier- oder Download-Knopf.

  • Format-Platzhalter %s%s%s%s

    %s%s%s%s

    Printf-Format ohne Argumente; unsicher, wenn Eingabe als Formatstring verwendet wird. Testzeichenfolge für eigene Systeme.

  • Format-Platzhalter %n

    %n

    Schreibt in C die Zeichenanzahl in einen Zeiger; ältere Bibliotheken sind angreifbar. Testzeichenfolge für eigene Systeme.

  • Format-Platzhalter %x %x %x %x

    %x %x %x %x

    Gibt Stapelwerte hexadezimal aus, wenn der Formatstring unsicher verwendet wird. Testzeichenfolge für eigene Systeme.

  • Prozentzeichen im Text: 100% sicher

    100% sicher

    Das einzelne % ist in Formatstrings und URL-Kodierung problematisch. Testzeichenfolge für eigene Systeme.

  • Positions-Platzhalter %1$s %2$s

    %1$s %2$s

    POSIX-Positionsformat. Testzeichenfolge für eigene Systeme.

  • Platzhalter {0} {1}

    {0} {1}

    .NET/Java/Python-Formatplatzhalter in Eingaben. Testzeichenfolge für eigene Systeme.

  • Platzhalter {}

    {}

    Python-str.format und Rust format!. Testzeichenfolge für eigene Systeme.

  • Ausdruck ${7*7}

    ${7*7}

    Probe für Ausdrucks-Auswertung (EL, Template-Literale): sollte unverändert angezeigt werden. Testzeichenfolge für eigene Systeme.

  • Ausdruck {{7*7}}

    {{7*7}}

    Probe für Template-Engines (Jinja2, Twig, Handlebars): Ausgabe 49 wäre ein Befund. Testzeichenfolge für eigene Systeme.

  • Ausdruck #{7*7}

    #{7*7}

    Probe für Ruby-Interpolation und Thymeleaf-Preprocessing. Testzeichenfolge für eigene Systeme.

  • Ausdruck <%= 7*7 %>

    <%= 7*7 %>

    Probe für ERB/EJS/JSP: Ausgabe 49 wäre ein Befund. Testzeichenfolge für eigene Systeme.

  • Ausdruck {{7*'7'}}

    {{7*'7'}}

    Unterscheidet Jinja2 (7777777) von Twig (49). Testzeichenfolge für eigene Systeme.

  • Ausdruck `${7*7}` (JavaScript-Template-Literal)

    `${7*7}`

    Wird nur in Backticks ausgewertet; zeigt unsichere eval-/Function-Nutzung. Testzeichenfolge für eigene Systeme.

  • Datumsformat-Platzhalter %Y-%m-%d

    %Y-%m-%d

    strftime-Muster als Eingabe in ein Namensfeld. Testzeichenfolge für eigene Systeme.

Weitere Themen in Sonderzeichen & Grenzfälle