Tom: (User-) Eingaben vor Übernahme in DB maskieren - Wie macht es Sinn?

Beitrag lesen

Hello,

Ich habe mir folgende Funktion gebaut,
die ich für jede (User-)Eingabe anwende, bevor ich Sie in die DB schreibe:

function maskInput($input) {

$input = htmlentities(trim($input));
    $input = mysql_real_escape_string($input);

return $input;

}

Fehlt da noch was?
addslashes() wird ja sozusagen von mysql_real_escape_string() erschlagen, oder?

Da wird wohl was zuviel sein.
In der Datenhaltung sollten immer neutrale Daten gespeichert werden, wenn es nicht einen besonderen Grund dagegen gibt. htmlentities() ist aber ein Ausgabeformat für ein bestimmtes Gerät (Browser).

Vergessen hast Du, Dein PHP danach zu fragen, ob es schon selbsttätig Maskierungen hinzugefügt hat. Die solltest Du dann nämlich erst wieder entfernen oder eben die Funktionalität abschalten
siehe hierzu get_magic_quotes_gpc() http://de3.php.net/manual/en/function.get-magic-quotes-gpc.php

Du kannst im prinzip auch das gesamte GET- oder POST-Array wieder rekursiv mit stripslashes() behandeln, wenn die MQ_gpc eingeschaltet waren.

Und dann reicht das mysql_real_escape_string() für die Maskierung der Daten aus.

Harzliche Grüße aus http://www.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau