dedlfix: md5 insert?

Beitrag lesen

echo $begrüßung;

ist kein shell, aber das ergebniss der $ding=md5($_POST[]) wird dann in $_SESSSION[]=$ding geschrieben und über sql-query als WHERE=$ding verwendet.. ich habe da sicherheitshalber htmlentities() dazugeschaltet. bringts was?

Wir™ reden uns hier doch schon seit Ewigkeiten den Mund fusselig, dass man sowohl _immer_ als auch _nur_ kontextspezifisch behandeln soll. Liest du denn hier gar nicht mit? Werte, die in ein SQL-Statement eingefügt werden sollen, sind für dieses SQL-Statement zu behandeln, nicht für irgendein Ausgabemedium, das erst irgendwann viel später die Daten zu Gesicht bekommt. Für MySQL-Statements ist dafür die Funktion mysql_real_escape_string() zuständig.

Für md5() kann man sich im Grunde genommen die Bedenken ganz sparen, denn die Ausgabe besteht immer nur aus den Zeichen 1..9 und a..f. Darin sind also keine Klammern oder andere Sonderzeichen enthalten, die man zur Bildung von ausführbarem Code benötigt. Es schadet aber auch nicht, auch diesen Wert konsequenterweise durch mysql_real_escape_string() zu schicken, bevor er in die Query eingesetzt wird. Vielleicht hast du ja noch andere Fehler im Code, durch die die Ausführung von md5() umgangen werden kann. Und dann rettet dich wenigstens mysql_real_escape_string() vor einer in dem Fall eventuell möglichen SQL-Injection.

echo "$verabschiedung $name";