[PHP] Ist dieser Code angreifbar?

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Sparx, 3. Dezember 2009 .

Schlagworte:
  1. 3. Dezember 2009
    Ist dieser Code angreifbar?

    Versuche mich zurzeit an PHP in Verbindung mit SQL. Habe ein simples Skript geschrieben, dass im Prinzip einfach nur eine Zeile auf einer Homepage editierbar macht. In dem Fall kann man eine Ankündigung posten zu einem bald stattfindenden Event.

    Hier der Code:

    PHP:
    <? php
    require( 'mysql-init.php' );
    $abfrage  "SELECT a_text FROM announcements" ;
    $result  mysql_query ( $abfrage );
    $change  $_POST [ 'form' ];
    $update  "UPDATE announcements SET a_text = ' $change ' WHERE id = '1'" ;
    $ergebnis  mysql_result ( $result 0 );

    if (!isset(
    $change )) {
    echo 
    "<form action='announcement.php' method='POST'>" ;
    echo 
    "Ankuendigung: <input type='text' size='150' name='form' value=' $ergebnis '>" ;
    echo 
    "<input type='submit' name='submit' value='Aktualisieren'>" ;
    echo 
    "</form>" ;
    }
    else {
    mysql_query ( $update );
    echo 
    "Announcement wurde erfolgreich geändert!" ;
    mysql_free_result ( $result );
    mysql_close ;
    }

    ?>
    Wie miserabel bin ich? Inwiefern kann man das verbessern / absichern? Ich habe von addslashes gehört und setze es in einem anderen Skript auch ein, wie könnte man denn in diesem Fall die Form angreifen, um z.B. ne SQL-Injection zu machen?
     
  2. 3. Dezember 2009
    AW: Ist dieser Code angreifbar?

    Sagst es ja schon selbst, solltest mysql-real-escape-string verwenden.
     
  3. 3. Dezember 2009
    AW: Ist dieser Code angreifbar?

    $_POST['form'] = '\' WHERE 1=1 -- ';

    und alle announcements wären gelöscht.
     
  4. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.