tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
270
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    4ever 4ever ist offline Mitglied
    Registriert seit
    Oct 2007
    Beiträge
    11
    Hallo Leute,
    ich wollte mich bezüglich sql injection weiterbilden. Inzwischen weiß ich auch, wie man die injection verhindert und sämtliche Tutorials von Youtube oder im internet gesehen/gelesen.

    Habe auf meiner HP extra kein mysql_real_escape_string eingefügt um zu sehen, wie ich selber per injection die Daten verändere.

    Beispiel aus dem NETZ:
    http://webserver/cgi-bin/find.cgi?ID=42;UPDATE+USER+SET+TYPE="admin"+WHERE+ID=23

    Die Funktion einer Injektion ist ja leicht verständlich. Ein weiterer Befehl wird einfach in der Adresszeile mit angehängt und übergeben.

    In meinem Beispiel, auf meiner HP, übergebe ich nicht die ID sondern die Variable site
    Der MySql befehl sieht so aus
    $sql = "SELECT ".$seite." FROM IZ_content";

    wenn ich nun meine Adresszeile veränder
    http://www.xxxxxxxxx.de/index?seite=home;UPDATE IZ_content SET home='HACK'
    dann taucht natürlich ein Fehler auf. Ich gehe davon aus, weil ich in mitten meiner sql Anweisung eine weitere Anweisung reinprügel will und der Server damit nicht einverstanden ist.

    Meine Frage ist nun, gibt es Befehlszeichen um ein Befehl abzubrechen?
    Muss ich nur Seiten schützen die eine ID Abfragen weil diese meistens am ende einer sql Anweisung stehen.


    MfG 4ever =)
     

  2. #2
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Dieser Angriff ist in den meisten Fällen NICHT möglich, da mysql_query() bzw. mysqli_query() nur EIN Query absetzen können. Der Rest wird ignoriert. Falls man soetwas möchte, gibt es dafür die *_multi_query Befehle.

    In diesem spezifischen Fall würde ich zu einer Whitelist raten.
     
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  3. #3
    4ever 4ever ist offline Mitglied
    Registriert seit
    Oct 2007
    Beiträge
    11
    Hallo Felix Jacobi,
    ich danke dir für deine Antwort.
    Weil imme alle von SQL Injection reden, hatte ich gedacht, dass sowas einfach und schnell zu manipulieren ist. Habe mich schon gewundert wieso ich das nicht hinbekomme. Aber zur sicherheit werde ich meine übergebenen Strings trotzdem absichern und ein mysql_real_escape_string einbauen.

    gruß 4ever01
     

  4. #4
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Besser ist das.

    Auch wenn nur ein Query abgegeben wird, kann es dennoch fatal sein, wenn nicht maskierte Strings angenommen werden.
    Z. B. bei Loginformularen, dort könnte man durch das Einschleusen von Code die Abfrage wertlos machen.
     
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

Ähnliche Themen

  1. Antworten: 14
    Letzter Beitrag: 09.07.09, 20:11
  2. Bulletproof problem (wenn nötig verschieben! )
    Von Joonas im Forum Coders Talk
    Antworten: 0
    Letzter Beitrag: 28.03.09, 19:56
  3. Bildgröße testen wenn nötig ändern
    Von Maggi13 im Forum Javascript & Ajax
    Antworten: 15
    Letzter Beitrag: 05.02.09, 17:53
  4. Antworten: 6
    Letzter Beitrag: 27.09.07, 14:23
  5. Eine Null bei Beträgen hinzufügen wenn nötig
    Von D@nger im Forum Visual Basic 6.0
    Antworten: 5
    Letzter Beitrag: 03.02.06, 13:38