Rolf B: PHP: Hochkomma für MySQL/MariaDB maskieren?

Beitrag lesen

Hallo Gunnar,

" und ' müssen in HTML als Elementinhalt nicht escapet werden, sondern nur in Attributwerten

Ja gut, kontextgerechte Behandlung bedeutet auch, den jeweiligen Kontext korrekt zu identifizieren und die entsprechende Maskierung durchzuführen

$snip = "<img src='$imgsrc' alt='A foo's folly'>";

da merkt man schon beim Schreiben, dass da was falsch ist und würde von Hand ein &apos; einsetzen müssen (und $imgsrc wurde hoffentlich anderweit vorbehandelt). Bei

$snip = "<img src='$img->url' alt='$img->altText'>";

fällt das nicht auf, aber da muss man dann eben drauf achten, korrekt zu maskieren:

$snip = sprintf("<img src='%s' alt='%s'>", 
                htmlspecialchars($img->url, ENT_QUOTES | ENT_HTML5),
                htmlspecialchars($img->altText, ENT_QUOTES | ENT_HTML5));

ist dann angesagt.

Das ist der Vorteil von UI Frameworks wie ASP.NET, die kümmern sich da automagisch drum. Dafür haben sie genügend anderen Unfug im Kopf.

Rolf

--
sumpsi - posui - obstruxi