Hi TomIRL,
Ich habe nicht jede einzelne Abfrage im Kopf kann es also nicht beurteilen welche Möglichkeit der Störung möglich ist.
Fakt ist adslashes
(mit zwei dd, von add *g*)
ist die ältere Funktion, es gibt also triftige Gründe für die Einführung von mysql_escape_string ().
Nun, ich hab es halt noch von meinem ersten PHP Tutorial damals mit addslashes gelernt, was aber nicht heißen soll, dass ich mich weigere mysql_escape_string() zu benutzen ;-)
Ich hab mir das übrigens gerade noch mal im PHP Manual angeschauen. Da wurde bei der deutschen Übersetung ein Satz ausgelassen:
Note: This function has been deprecated since PHP 4.3.0. Do not use this function. Use http://de.php.net/manual/de/function.mysql-real-escape-string.php@mysql_real_escape_string() instead.
Aber auch bei dieser Funktion unterscheidet sich die Deutsche Seite von der Englischen, in welches steht:
mysql_real_escape_string() calls MySQL's library function mysql_escape_string, which prepends backslashes to the following characters: NULL, \x00, \n, \r, , ', " and \x1a.
Wenn ich das richtig sehe, kümmert sich auch diese Funktion in keinster Weise um Werte wir 'OR', 'AND' usw. Also bietet diese Funktion nicht einen allzugroßen Mehrwert gegenüber addslashes(), zu dem im Manual steht:
An example use of addslashes() is when you're entering data into a database. For example, to insert the name O'reilly into a database, you will need to escape it. Most databases do this with a \ which would mean O'reilly. This would only be to get the data into the database, the extra \ will not be inserted. Having the PHP directive magic_quotes_sybase set to on will mean ' is instead escaped with another '.
(Auch hier ist die dt. Übersetzung mal wieder nicht so richtig zu gebrauchen.)
Zusamenfassed möchte ich meinen, dass für einen XSS Schutz die Funktion addslashes() durchaus ausreichen dürfte und die schlimmsten Angriffe blocken sollte.
Natürlich kann es trotzdem nicht schaden, mysql_real_escape_string() zu nutzen - werde ich in Zukunft vermutlich auch machen ;-)
Übertragen will ich sagen: Warum willst Du mit einem Fiat Panda zur Arbeit fahren wenn es mit einem Mercedes schneller und sicherer geht.
Zumal Du ja die Wahl hast.
Es gibt auch Leute, die bevorzugen "Oldtimer" ;-))
MfG, Dennis.
Mein SelfCode: ie:{ fl:{ br:^ va:) ls:< fo:) rl:( n4:& ss:) de:> js:( ch:{ sh:( mo:} zu:|
Zufällige Hinweise:
------------------------
Sinnvolles Zitieren: Man zitiert nur Teilsätze des Vorposters
auf die man sich bezieht! Nicht einfach alles.