Frage

Ich habe versucht, zu sanieren Eingaben meine PHP Login addslashes und mysql_real_escape_string verwenden. Mit addslashes funktioniert, aber mysql_real_escape_string nicht.

Hier ist ein Beispiel dafür, was erlaubt es mir richtig anzumelden:

$user = addslashes($_POST['user']);<br/>
$password = addslashes($_POST['password']);

Und diese werden nicht:

$user = mysql_real_escape_string($_POST['user']);<br/>
$password = mysql_real_escape_string($_POST['password']);

Auch enthalten einige meiner anderen Felder Apostrophe. Nichts wird zurückgegeben, wenn addslashes verwendet wird, da der Eintrag in der DB nicht entgangen. Ich frage mich, ob mysql_real_escape_string mit diesem Problem beheben könnte, aber ich weiß nicht, wie.

War es hilfreich?

Lösung

Verwenden Sie immer mysql_real_escape_string statt addslashes. Stellen Sie sicher, dass Sie in die Datenbank verbunden ist, bevor läuft es sonst werden Sie Fehler.

Andere Tipps

mysql_real_escape_string () nicht entkommt% und _. Dies sind Platzhalter in MySQL kombiniert, wenn sie mit LIKE, GRANT oder REVOKE.

Und Wichtigste ist nicht eingabe Vertrauen Benutzer tun.

So verwenden htmlspecialchars und strip_tags für eine bessere Sicherheit.

Manchmal können Benutzer geben ', dieses Symbol aber SQL behandeln als andere Art und Weise und lassen Sie es erlaubt, nicht in Tabellen einzufügen, wir können nicht den Benutzer beschränken, so dass wir diese Art von Fehlern MySQL echten Escape-Zeichenfolge verwenden, um zu vermeiden

Hinweis: Wenn Sie diese implementieren sollte es sonst zur Datenbank verbinden, es wird nicht funktionieren

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