Længlich: SQL-Injektion Schutz auch bei Prepared Statements?

Beitrag lesen

Ye'ti!

also hab ich das richtig verstanden? Wenn auf _meinem_ Server die Magic Quotes OFF sind, würd ichs nicht brauchen, aber für den Fall der Fälle, dass mein Skript mal auf einem PHP-Server läuft, wo Magic Quotes eingeschaltet sind, sollte ich _trotzdem_ das

if (get_magic_quotes_gpc()) { $_POST = array_map( 'stripslashes', $_POST ); }

verwenden. Ist das richtig so? Und reciht das dann?

Richtig. Und ja, das reicht. Nur das »sollte« würde ich differenzierter betrachten:
Du solltest die Behandlung einfügen, wenn

  • Du den Server (noch) nicht kennst, auf dem das Script laufen wird
  • das Script eine (mehr oder weniger) öffentliche Bibliothek ist, die überall lauffähig sein soll
  • das Script ein öffentliches Beispiel ist.
    (Im Prinzip laufen diese Punkte alle auf das gleiche hinaus: Serverkonfiguration ist nicht sicher bekannt.)

Meine Scripte enthalten diese Zeile nicht. Ich veröffentliche sie nicht, und wenn ich jemanden abgucken lasse, sage ich dazu, daß ich mich nicht um Server-Config gekümmert habe – das muß derjenige dann nötigenfalls selbst tun.

Und wenn ich nochmal fragen darf ... dieses "mysqli_real_escape_string()" ist was ganz anderes oder gehts da um die selbe Sache? Oder ist das _wieder_ was anders, das ich _auch_ verwenden soll aus Sicherheitsgründen?

Du verwendest entweder mysql oder mysqli (letzteres ist das neuere), und davon dann alle benötigten Funktionen. Ich habe noch nie versucht, sie zu mischen, aber es ist vermutlich keine gute Idee. Und auf keinen Fall beide escapes hintereinander anwenden, sonst hast Du wieder zu viele Slashes im String!

Viele Grüße vom Længlich

--
Mein aktueller Gruß ist:
Tschuktschisch (gesprochen in Rußland)