Warum sollten Sie sich die Mühe machen, MySQL_REAL_ESCAPE_STRING () zu verwenden, da $ _post vor einem Angebot automatisch Schrägstriche hinzufügt?
-
20-09-2019 - |
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.
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
- mysql_real_escape_string entgeht mehr als nur einzelne Zitate, da es andere Zeichen gibt, die Injektionsprobleme verursachen können.
- 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.