Autor |
Nachricht |
choise
Threadersteller
Dabei seit: 01.02.2007
Ort: Würzburg
Alter: 35
Geschlecht:
|
Verfasst Mi 25.11.2009 10:40
Titel PHP | MySQL Injection vermeiden |
|
|
Hi Leute,
ich sitze momentan mal wieder an Usereingaben die in eine Datenbank geschrieben werden müssen.
Meine Frage an euch, wie validiert ihr die Usereingaben um sie vor Injections oder ähnlichem zu schützen?
reicht euch zb sowas aus Code: |
public function validate_string($string)
{
if (get_magic_quotes_gpc())
{
$string = stripslashes($string);
}
$string = strip_tags($string);
$string = mysqli_real_escape_string($string);
return $string;
}
|
ich persönlich prepare mein statement ersteinmal mit mysqli und setzt dann die validierten und mit mysqli real escape string überprüften variablen ein.
welche methoden sollte man noch über die eingaben laufen lassen?
|
|
|
|
|
bacon
Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mi 25.11.2009 10:48
Titel
|
|
|
Prepared Statements nehmen Dir das Escaping ab, da brauchste nix mehr in Bezug auf mysql-injections zu machen. Ich würde mysqlli ja trotzdem vermeiden und den Weg über PDO + Mysql gehen. Der PDO/Mysql-Treiber ist mehr als stabil. Ich hatte hier aus irgend einem Grund enorme Probleme damit (Lamp) und hab's dann aus Gründen der Plattformunabhängigkeit links liegen gelassen. Ich bezweifle auch den Nutzen eines "Improved" Mysql-Befehlssatzes, der immer noch prozedural gehalten ist. Wenn du es gar nicht lassen kannst, nutze PearDB mit mysqli.
Zuletzt bearbeitet von bacon am Mi 25.11.2009 10:53, insgesamt 2-mal bearbeitet
|
|
|
|
|
Anzeige
|
|
|
choise
Threadersteller
Dabei seit: 01.02.2007
Ort: Würzburg
Alter: 35
Geschlecht:
|
Verfasst Mi 25.11.2009 11:00
Titel
|
|
|
bacon hat geschrieben: | den Weg über PDO + Mysql gehen. |
hab ich noch nie gemacht, werd ich mir mal ansehen
bacon hat geschrieben: | Ich bezweifle auch den Nutzen eines "Improved" Mysql-Befehlssatzes, der immer noch prozedural gehalten ist. |
hm oke, sollte ich ihn jedoch verwenden, wäre die sicherheit mit den prepared statements also gegeben?
bacon hat geschrieben: | Wenn du es gar nicht lassen kannst, nutze PearDB mit mysqli. |
Auf der PEAR Seite steht, dass PEAR:DB nicht mehr weiterentwickelt wird, ist mir neu.
Hat jemand Erfahrungen mit dem hier?
|
|
|
|
|
m
Moderator
Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht:
|
Verfasst Mi 25.11.2009 11:05
Titel
|
|
|
choise hat geschrieben: | bacon hat geschrieben: | den Weg über PDO + Mysql gehen. |
hab ich noch nie gemacht, werd ich mir mal ansehen |
Kommt mysqli prepared statements gleich.
Zuletzt bearbeitet von m am Mi 25.11.2009 11:06, insgesamt 1-mal bearbeitet
|
|
|
|
|
bacon
Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mi 25.11.2009 11:08
Titel
|
|
|
Ganz ehrlich: Nimm direkt Doctrine, haste mehr Spaß mit.http://www.doctrine-project.org/
|
|
|
|
|
choise
Threadersteller
Dabei seit: 01.02.2007
Ort: Würzburg
Alter: 35
Geschlecht:
|
Verfasst Mi 25.11.2009 11:13
Titel
|
|
|
bacon hat geschrieben: | Ganz ehrlich: Nimm direkt Doctrine, haste mehr Spaß mit.http://www.doctrine-project.org/ |
sieht super aus.
nur für das aktuelle ding hab ich kaum zeit.
ich les mich mal schnell in die doku ein und schau ob ich das mit dem ding bis freitag gebacken krieg.
|
|
|
|
|
bacon
Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Di 01.12.2009 22:12
Titel
|
|
|
und? is schön, oder?
|
|
|
|
|
choise
Threadersteller
Dabei seit: 01.02.2007
Ort: Würzburg
Alter: 35
Geschlecht:
|
Verfasst Mi 02.12.2009 00:13
Titel
|
|
|
in bisschen verschickt am anfang, die doku find ich jetzt nicht sooo gelungen,
n gutes tut ausser die doku selbst hab ich aber vergeblich gesucht, naja.
aber mit gammligen mysqli ist d as natürlich nicht zu vergleichen.
|
|
|
|
|
|
|
|
Ähnliche Themen |
[PHP] mail() Header injection in $message möglich?
[PHP + mySQL] Kann Fehler in einer mySQL-Phrase nicht finden
[PHP/MySQL] MySQL Error: 1054, falsche Tabelle ausgewählt?
[MySql]Lost connection to MySQL server during query
Wiederholung vermeiden
hurenkinder vermeiden? Umbruchoption?
|
|