Warum sollten Sie sich die Mühe machen, MySQL_REAL_ESCAPE_STRING () zu verwenden, da $ _post vor einem Angebot automatisch Schrägstriche hinzufügt?

StackOverflow https://stackoverflow.com/questions/1747677

Frage

In PHP $ _post fügen Sie Schrägstriche vor einer Anführungsmarke automatisch hinzu. Warum also die Mühe machen, mySQL_REAL_ESCAPE_STRING () anzuwenden? Zum Beispiel, wenn ich eingibt 'rrr in einem Eingangsfeld, und ich bekomme \'rrr Wenn ich es wiederhole.

War es hilfreich?

Lösung

Denn dies geschieht nur, wenn Macigquotes in Ihrer PHP -Konfiguration aktiviert ist, was, soweit ich weiß, heutzutage ziemlich ungewöhnlich ist. Außerdem entgeht auch MySQL_REAL_ESCAPE_string anderen mit MySQL bezogenen Zeichen.

Kasse http://php.net/manual/en/security.magicquotes.php Weitere Informationen zu magischen Zitaten.

Wie Sie sehen können, gibt es bereits eine Abschreibungswarnung für diese Anweisung. Sie sollten also trotzdem Ihre Serverkonfiguration überprüfen ^^

Bearbeiten: Um magische Zitate zu deaktivieren, in Ihrem XAMPP -Ordner nach dem Php.ini zu suchen und fügen Sie die folgenden Anweisungen hinzu oder ändern Sie, wenn Sie vorhanden sind:

; Magic quotes
;

; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = Off

; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.
magic_quotes_runtime = Off

; Use Sybase-style magic quotes (escape ' with '' instead of \').
magic_quotes_sybase = Off

Andere Tipps

  1. mysql_real_escape_string entgeht mehr als nur einzelne Zitate, da es andere Zeichen gibt, die Injektionsprobleme verursachen können.
  2. PHP fügt den veröffentlichten Eingaben nur Schrägstriche hinzu, wenn Magic_quotes aktiviert ist, was als schlechte Praxis angesehen wird (weil es zu Faulheit führt und keine Dinge wie real_escape_string verwendet!)

Magische Zitate wurde ab PHP 5.3.0 veraltet und ist wie von PHP 6.0 veraltet.

Bearbeiten: Auf die automatischen Schrägstriche können sich also nicht verlassen, da sie von den meisten PHP -Installationen veraltet sind und bald überhaupt nicht funktionieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top