MySQL-real-escape-string
War ich versucht zu desinfizieren die Eingänge zu meinem PHP login mit addslashes und mysql_real_escape_string. Mit addslashes
funktioniert, aber mysql_real_escape_string
nicht.
Hier ein Beispiel von dem, was erlaubt, mich einzuloggen richtig:
$user = addslashes($_POST['user']);<br/>
$password = addslashes($_POST['password']);
Haben und dieser nicht:
$user = mysql_real_escape_string($_POST['user']);<br/>
$password = mysql_real_escape_string($_POST['password']);
Auch einige meiner anderen Felder enthalten Apostrophe. Nichts wird zurückgegeben, wenn mit addslashes, da der Eintrag in der DB ist das nicht entgangen. Ich Frage mich, ob mit mysql_real_escape_string
dieses Problem beheben könnte, aber ich weiß nicht, wie.
addslashes()
ist NICHT akzeptabel für die Flucht von mySQL-Daten. Können Sie zeigen einige aktuelle user-Daten, die fehlschlägt? Und die Abfrage, die Sie ausführen möchten?Was machen deine eigentliche SQL-Anweisungen Aussehen?
addslashes
ist nicht zu tun, was Sie wollen..magic_quotes/addslashes sind immer nur dann rechtmäßig, wenn
mysql_set_charset("ASCII");
oder Latin1 eingestellt war. Es möglicherweise nicht auf den neueren MySQL-Servern, die in --ansi
- Modus, etc.Hinweis:
mysql()*
ist deprecated seit PHP 5.5.0, es wird nicht empfohlen, für Sie neuen code schreiben, wie es sein wird in Zukunft entfallen. Verwenden Sie stattdessen mysqli oder PDO
InformationsquelleAutor user490895 | 2011-01-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwende immer mysql_real_escape_string anstelle von addslashes. Stellen Sie sicher, dass Sie mit der Datenbank verbunden sind vor läuft, sonst werden Sie den Fehler.
Wenn Sie möchten, machen Sie sicher, HTML ist nicht aktiv, wenn man das echo auf dem Bildschirm verwenden htmlentities() vor dem anzeigen-text. Beide Strategien zusammen, wird die Sicherheit erhöhen.
InformationsquelleAutor Calum
mysql_real_escape_string() nicht entkommen, % und _. Diese sind Platzhalter in MySQL, wenn in Verbindung mit WIE, ERTEILEN oder ENTZIEHEN.
Und wichtigste Sache ist don ' T trust user input.
So, htmlspecialchars verwenden und strip_tags für bessere Sicherheit.
InformationsquelleAutor HADI
Manchmal Benutzer kann die Art
'
dieses symbol aber sql behandeln als eine andere Art und Weise und lassen Sie es nicht erlauben das einfügen in Tabellen,wir können einschränken, die Benutzer, so dass wir die Verwendung von MySQL-real-escape-string zu vermeiden, diese Art von FehlerHinweis: wenn Sie implementieren diese sollte es sein, die Verbindung zu Datenbank herstellen, was es sonst nicht funktionieren
InformationsquelleAutor ganesan