PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP für Fortgeschrittene und Experten (http://www.selfphp.de/forum/forumdisplay.php?f=13)
-   -   Frage zu SQL Injektion (http://www.selfphp.de/forum/showthread.php?t=18340)

ksticker 25.12.2007 22:33:08

Frage zu SQL Injektion
 
Wenn ich das richtig verstanden habe, braucht man nur SQL- Abfragen zu sichern welche
so aufgebaut sind
PHP-Code:

$abfrage "SELECT spalte1 FROM tabelle WHERE spalte2 = '".$_POST['spalte2Wert']."'"

und solche nicht
PHP-Code:

$query MYSQL_QUERY("INSERT INTO User (Spalte1,Spalte2) VALUES('$Inhalt1','$Inhalt2')"); 

oder verstehe ich hier was falsch?

defabricator 25.12.2007 22:43:31

AW: Frage zu SQL Injektion
 
Was passiert, wenn $Inhalt1 die Zeichenkette Jeanne D'Arc enthält?

ksticker 25.12.2007 22:44:53

AW: Frage zu SQL Injektion
 
hy defabricator schön Dich mal wieder zu sehen :-)

ok, also soll ich überall, das verwenden mysql_real_escape_string?

defabricator 25.12.2007 22:46:42

AW: Frage zu SQL Injektion
 
Bei jeder Zeichenkette, die Du in Dein SQL Statement einfügst, ja.

ksticker 25.12.2007 22:48:17

AW: Frage zu SQL Injektion
 
ok, danke für Deine Hilfe, bin grad dabei das in meinem Registrationsform. umzusetzen
kann ich Dir das dann mal zeigen ob das so Ok ist?

defabricator 25.12.2007 22:50:23

AW: Frage zu SQL Injektion
 
Bin gespannt.

Opendix 25.12.2007 22:51:08

AW: Frage zu SQL Injektion
 
stells doch eifnach mal hier rein :)

ksticker 25.12.2007 22:52:29

AW: Frage zu SQL Injektion
 
mach ich dann, ok will es mal soweit selber hinbekommen, sonst lern ich es ja nie ;-)

ksticker 25.12.2007 23:31:26

AW: Frage zu SQL Injektion
 
kann man das eigentlich so machen

PHP-Code:

$Vorname mysql_real_escape_string($_POST['Vorname']); 

und dann mit der Variable $Vorname in der SQL-Abfrage arbeiten

defabricator 25.12.2007 23:54:55

AW: Frage zu SQL Injektion
 
Ja.

Noch besser ist es, wenn Du die Verbindungsresource mit angibst.
PHP-Code:

<?php
$mysql 
mysql_connnect(...
mysql_select_db( , $mysql ...
...
$y mysql_real_escape_string($x$mysql);

Noch besser ist es, wenn Du named/positioned parameters verwendest und so die SQL Anweisung von den eigentlichen Nutzdaten trennst
PHP-Code:

<?php
$pdo 
= new PDO(...

$stmt $pdo->prepare('INSERT INTO xyz (a,b,c) VALUES(?,?,?)');
$stmt->execute(array($_POST['a'], $_POST['b'], $_POST['c']));



Alle Zeitangaben in WEZ +2. Es ist jetzt 04:13:24 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.