+ Antworten
Ergebnis 1 bis 7 von 7

Thema: 2x mysql_query("INSERT INTO ..

  1. #1
    Web-Macher
    Gast Avatar von Web-Macher

    2x mysql_query("INSERT INTO ..

    Hallo habe folgendes Problem:
    if($_POST[todo] == "eintragen")

    { if($_POST[msg] && $_POST[betreff])

    { $now = time();

    mysql_query("INSERT INTO forum_threads (forum,aenderungs_datum,betreff,datum,user) VALUES

    ('$_REQUEST[forum_id]','$now','$_POST[betreff]','$now','1')");

    $get_id = mysql_insert_id();

    mysql_query("INSERT INTO forum_posts (bezug_thread,post_sort,datum,betreff,msg,user VALUES

    ('$get_id','0','$now','$_POST[betreff]','$_POST[msg]','1')");

    //$eintragok = 1;

    //header("Location:showthread.php?thread_id=$_REQUEST[forum_id]&eintragok=1");

    } else

    $notallfilled = 1; }
    Es ist ein Forum und ich möchte in zwei unterschiedliche Tabellen etwas eintragen.
    Der erste INSERT INTO befehl funktioniert auch, der nachfolgende Befehl $get_id = mysql_insert_id(); auch noch nur dannach der INSERT Befehl nicht mehr. MySQL gibt keine Fehlermeldung aus.

    Ich hoffe es kann mir jemand helfen.
    MfG
    Web-Macher

  2. #2
    gateway
    Gast Avatar von gateway

    RE: 2x mysql_query("INSERT INTO ..

    Mach die Klammern die du aufmachst auch wieder zu dann klappts auch mit dem Nachbarn

    LG

    Gate

  3. #3
    Web-Macher
    Gast Avatar von Web-Macher
    Danke!! Stimmt ist mir auch (zu) spät aufgefallen. Hab da jetzt 4 Stunden dran gesessen (!).

    Somit Problem schon gelösst. Danke nochmal!

  4. #4
    Urgestein Avatar von Montoyafan

    Registriert seit
    24.6.04 - 16:21
    Beiträge
    520
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Hi,

    schon mal etwas von "SQL Injection" gehört @Web-Macher?

    Wenn nicht, solltest Du Dich mal schleunigst darüber informieren

    GET und POST Übergaben niemals ungeprüft an die Datenbank senden!!

    Bei Deinen Querys kann man herrlich SQL-Befehle in die DB einschleusen

    Cu

  5. #5
    gateway
    Gast Avatar von gateway
    Da hat Montoya natürlich wie immer Recht

    LG

    Gate

  6. #6
    Web-Macher
    Gast Avatar von Web-Macher
    Wie meinst Du das mit dem Überprüfen? Wie kann ich das machen? @Montoyafan
    Schaue mal gleich nach was "SQL Injection" ist. Scheint ja nichts gutes zu sein.
    Web-Macher

  7. #7
    Urgestein Avatar von Montoyafan

    Registriert seit
    24.6.04 - 16:21
    Beiträge
    520
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Hi,

    das ist es auch nicht.

    Mit SQL-Injection kann ich bsw. mir in Deinem Forum mit etwas "Try and Error" mir einen Admin-Account erstellen und Dich rausschmeissen.

    Du musst dafür sorgen das in Post und Get Variablen nur das drin steht was auch drin stehen soll und kein gefährlicher SQL-Code.

    Zeichen wie >> ', " und \ << dürfen auf keinen Fall drin stehen.

    Solche Zeichen kannst Du wie folgt abfangen:

    PHP-Code:
    <?

    $variable 
    addslashes($_POST['Postvariable']);

    ?>
    Ein kleines Beispiel was zeigt wie SQL-Injection funktioniert:

    Du hast ein Loginscript für irgendeine Seite.

    Jetzt schickst Du die empfangenen Daten zur Prüfung an die DB um zu checken ob der User dort rein darf. Das sehe dann so aus:

    PHP-Code:
    ".... FROM user WHERE Username = '".$_POST['Username']."' && Passwort = '" $_POST['Passwort'] . "'"
    Wenn da jetzt ein User als Benutzername ' OR '1'='1 und als Passwort ' OR '1'='1 eingibt, ist er schon auf der Seite denn die Abfrage die in der DB abkommt sehe dann so aus:

    PHP-Code:
    ".... FROM user WHERE Username = '' OR '1'='1' && Passwort = '' OR '1'='1'"
    Nur ein Beipspiel.
    Man kann mit der Datenbank alles mögliche machen --> komplett löschen, sich einen Account anlegen ...

    Also ich denke das ist schon ein Grund sich wenigstens mal grundlegend über die eigene Script-Sicherheit gedanken zu machen

    Edit:
    Ein schlauer Mann hat mal gesagt:
    "All input is evil, until proven otherwise!"

    ^^ Merke ihn Dir und befolge Ihn

    Cu

+ Antworten

Berechtigungen

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