| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Der Wunderhund Registriert seit: Jun 2002 Ort: Hattingen
Beiträge: 10.515
| AmfPHP und SQL-Injection
Hallo. Habe schon viel in diesem Forum gelesen und bin dabei über SQL_Injection gestolpert. Den Artikel bei Wikipedia habe ich auch gelesen. Dort steht z.B. man sollte bei PHP statt Code: $abfrage = "SELECT spalte1
FROM tabelle
WHERE spalte2 = '".$_POST['spalte2Wert']."'";
$query = mysql_query($abfrage) or die("Datenbankabfrage ist fehlgeschlagen!"); Code: $abfrage = "SELECT spalte1
FROM tabelle
WHERE spalte2 = '".mysql_real_escape_string($_POST['spalte2Wert'])."'";
$query = mysql_query($abfrage) or die("Datenbankabfrage ist fehlgeschlagen!"); und diesen habe ich ja bei AmfPHP nicht, da die Werte ja direkt als Methoden-Parameter kommen. Ich habe z.B. folgende Methode. PHP-Code: (und wenn ja wie?) oder treten hier diese Risiken nicht auf, da der Wert nicht über $_POST in die PHP-Methode gelangt? gruß, gaspode Geändert von gaspode (07-03-2009 um 14:44 Uhr) |
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: Jan 2009
Beiträge: 423
|
Hallo. MySQL Injection sollte auch bei AmfPHP möglich sein. Das Problem ist nicht die Methode (Post, Get oder was auch immer), sondern der Inhalt. Am besten und schnellsten funktioniert eine Vorbeugung, wenn deine Datenbank etwas mit MySQLi anfangen kann. Dadurch kannst du Prepared Statements verwenden, das heisst, die Datenbankabfrage wird zuerst vorbereitet und erst dann geschickt. PHP-Code: PHP-Code: Geändert von mohj (07-03-2009 um 15:32 Uhr) |
| | |
| | #6 (permalink) |
| Neuer User Registriert seit: Jan 2009
Beiträge: 423
|
Hallo. Das sind Platzhalter mit einer Typisierung, welche mit den Argumenten nach dem Komma gefüllt werden. Dadurch stellst du sicher, dass der übermittelte Wert "id" auch wirklich eine Zahl ist und nicht wie bei einer MySQL Injection ein String.
|
| | |
| | #8 (permalink) |
| Der Wunderhund Registriert seit: Jun 2002 Ort: Hattingen
Beiträge: 10.515
|
Hmm, irgendwie bekomme ich das nur zum laufen, wenn ich die \' weglasse. Code: $query = sprintf('SELECT title, client WHERE id = %d", mysql_real_escape_string($id)); gruß, gaspode |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |