MySQL Injectionen in PHP verhindern[reicht das?]

Hallo,
arbeite aktuell gerade an einer Community. Da ist das Thema Sicherheit natürlich auch ein großes Thema.

Jetzt meine Frage reicht folgendes aus um MYSQL Injectionen zu verhidern.

$Text = $_POST["Text"];
$Text = htmlentities($Text, ENT_QUOTES);

$sql = "INSERT INTO usersGaestebuch(UserName, Text) VALUES ('$UserName', '$Text')";
$result = mysql_query($sql);


jetzt werden ja alle Sonderzeichen umcodiert? sollte doch reichen oder?
 
nein der wird aus der Datenbank direkt geholt^^, da besteht also keine gefahr :D

EDIT: Stimmt du hast Recht sorry habe ich nicht gesehen

KANN DELETED WERDEN ;D
 
Hallo,
nein der wird aus der Datenbank direkt geholt^^, da besteht also keine gefahr
Das ist nicht war. Was ist, wenn ich als Username einen Namen habe, der eine Injection durchführt?

Ansonsten ist htmlentities der falsche Weg, lieber mysql_real_escape_string verwenden.
 
beim usernamen sind keinerlei sonderzeichen erlaubt.
wieso ist htmlentities der falsche Weg?

habe jetzt schon in mehreren Quellen gelesen, wie auch hier Absicherung vor xss und sqlinjections

das das ausreichen würde und sicher ist?

vielleicht täusche ich mich auch, kannst du es vielleicht ein bisschne erklären.

Grüßle frank :)
 
Hallo,
htmlentities() schützt vor XSS ist aber nicht für den Schutz vor SQL Injections gedacht.
htmlentities() dafür zu zweckenfremden ist sehr schön, zuerst einmal wird dann in der DB der HTML Code für Sonderzeichen u.ä. abgespeichert, was zu erheblichen Problemen später füren kann, und ob dies zuverlässig vor Injections schützt ist auch fraglich.

Merken:
Beim abspeichern mysql_real_escape_string verwenden, dann bei der Ausgabe htmlentities() auf $text anwenden, um vor XSS sicher zu sein.
 
Zurück
Oben