Gunnar Bittersmann: Pro/Contra Smarty

Beitrag lesen

@@Felix Riesterer

<output><?= $answer ?></output>

wo wird da kontext-gerecht kodiert?

Ich bin stillschweigend davon ausgegangen, dass $answer das Ergebnis einer (7½ Millionen Jahre dauernden) Berechnung ist und 42 keiner weiteren Behandlung bedarf.

Wenn $answer ein String ist, in dem HTML-Sonderzeichen auftreten können, insbesondere eine Nutzereingabe oder ein Datenbankeintrag zweifelhafter Herkunft, dann muss es natürlich

<output><?= htmlspecialchars($answer) ?></output>

heißen; in Smarty

<output>{$answer|escape}</output>

Ich hatte noch überlegt, das zu erwähnen; mich aber dann dagegen entschieden. War vielleicht nicht die beste Entscheidung.

LLAP 🖖

PS: Ich hab das im unteren Teil jetzt mal ergänzt.

--
„Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann