Ergebnis 1 bis 7 von 7

Thema: Problem mit SQL injection

  1. #1
    HTML Newbie
    Registriert seit
    09.03.2011
    Beiträge
    3
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Problem mit SQL injection

    Hallo!

    Ich bin gerade dabei ein Gästebuch zu programmieren.

    Nun möchte ich dieses auf Sicherheit testen und bin dabei auf die SQL-injection gestoßen.
    Ich hab gegoogled und habe dann versucht diese SQL-injection an meinem Gästebuch zu testen.

    Die SQL-Befehle hab ich als Gästebuchnachricht eingegeben.

    Könnte mir wer sagen ob ich mit meinem Gästebuch sicher bin oder was ich noch verändern muss ?

    hier mal der PHP teil meines codes :
    PHP-Code:
    <?php
        
        
    if ( $_POST['eintrag'] != "" )
    {
            echo 
    "<h2>Eintrag speichern</h2>";
            
            
    $sql " INSERT INTO gaestebuch ";
            
    $sql .= " SET ";
            
    $sql .= " name ='"$_POST['name'] ."', ";
            
    $sql .= " email ='"$_POST['email'] ."', ";
            
    $sql .= " url ='"$_POST['url'] ."', ";
            
    $sql .= " datum ='"date("Y-m-d H:i:s") ."', ";
            
    $sql .= " eintrag  ='"$_POST['eintrag'] ."' ";
            
            echo 
    "<hr />Inhalt der Variablen $ sql : $sql<hr />";
            
            
    define ('MYSQL_HOST''localhost');
            
    define ('MYSQL_BENUTZER''root' );
            
    define ('MYSQL_KENNWORT''');
            
    define ('MYSQL_DATENBANK''projekt');
            
            
            
    $db_link = @mysql_connect (MYSQL_HOSTMYSQL_BENUTZERMYSQL_KENNWORT);
            
            if ( ! 
    $db_link)
    {
        die(
    'keine Verbindung zur Zeit möglich - später probieren ');
    }

        
    $db_sel mysql_select_dbMYSQL_DATENBANK )
        or die(
    "Auswahl der Datenbank fehlgeschlagen");
        
        
    $db_erg mysql_query($sql);
        if ( ! 
    $db_erg)
        {
        die(
    'Ungültige Abfrage: ' mysql_error());
        }
        echo 
    '<p><a href="gaestebuch.php">Gästebuch anzeigen</a></p>';
        exit;
            }
    ?>
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Meister(in) Avatar von lukasn
    Registriert seit
    23.02.2008
    Ort
    Schweiz
    Alter
    27
    Beiträge
    491
    Danke
    2
    Bekam 12 mal "Danke" in 11 Postings

    Standard AW: Problem mit SQL injection

    Kann ja nicht sicher sein, du schickst unverarbeitete Usereingaben an die DB. Das absolute Minimum ist, die Daten mit mysql_real_escape_string() zu maskieren.

  3. #3
    HTML Newbie
    Themenstarter

    Registriert seit
    09.03.2011
    Beiträge
    3
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Problem mit SQL injection

    Wie würde den eine genaue SQL injection lauten, mit der man mein Gästebuch überlisten könnte?
    Denn wenn ich ein SQL Befehl als Gästebucheintrag verwende, wird dieser in eine Variable gespeichert und verändert somit nicht mein Quellcode, sondern wird einfach als Gästebucheintrag ausgegeben.

  4. #4
    Großmeister(in)
    Registriert seit
    09.12.2008
    Ort
    Berlin
    Alter
    38
    Beiträge
    666
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: Problem mit SQL injection

    Ich gebe mal für das Feld name das hier ein: '; DROP DATABASE;
    Wenn du das in deinen SQL-Befehl einbindest sieht das folgendermaßen aus:
    INSERT INTO gaestebuch SET name=''; DROP DATABASE;


    Sämtliche Daten die vom Client kommen müssen unbedingt vor der Verwendung in SQL-Statements mit mysql_real_escape_string behandelt werden.
    Bsp:
    PHP-Code:
    $name mysql_real_escape_string($_POST['name']); 
    Alternativ kannst du auch Mysqli oder PDO mit prepared Statements verwenden. Da wird dir das escapen abgenommen.
    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  5. #5
    HTML Newbie
    Themenstarter

    Registriert seit
    09.03.2011
    Beiträge
    3
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Problem mit SQL injection

    Es tut sich immer noch nichts.

    Wenn ich die angegebenen Daten in das Feld name eingebe, kommt folgende Fehlermeldung:

    Ungültige Abfrage: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DROP DATABASE;', email ='', url ='', datum ='2011-03-11 12:29:53', eintrag ' at line 1

  6. #6
    Großmeister(in)
    Registriert seit
    09.12.2008
    Ort
    Berlin
    Alter
    38
    Beiträge
    666
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: Problem mit SQL injection

    Das war lediglich ein ganz simples Beispiel um zu demonstrieren wie das grundlegend funktioniert. Eine genaue Anleitung wird dir hier niemand geben. Wenn du nicht glauben willst das User-Eingaben vor der Verwendung in SQL-Statements escaped werden müssen lass das escapen weg und hoffe darauf, dass dich kein Auftraggeber wegen grober Fahrlässigkeit verklagt wenn Schindluder mit seinen Daten getrieben wird.
    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  7. #7
    Pion
    Gast

    Standard AW: Problem mit SQL injection

    Es geht hier nicht weil mysql_query nur einen Befehl unterstützt (union oder ähnliches würde gehen bringt hier aber nicht viel)

    Dennoch schützen

    mfg

Ähnliche Themen

  1. Testing SQL-Injection
    Von Unregistriert im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 6
    Letzter Beitrag: 17.05.2009, 03:05
  2. SQL-Injection
    Von Unregistriert im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 7
    Letzter Beitrag: 17.05.2009, 02:54
  3. Sql-Injection bei include ?
    Von DaRealAndy im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 20
    Letzter Beitrag: 28.07.2008, 17:45
  4. Wie schütze ich mich vor SQL-Injection?
    Von RedFighter im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 11
    Letzter Beitrag: 07.07.2008, 17:01

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •