#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? + Multi-Zitat Zitieren
#2 3. Dezember 2009 AW: Ist dieser Code angreifbar? Sagst es ja schon selbst, solltest mysql-real-escape-string verwenden. + Multi-Zitat Zitieren
#3 3. Dezember 2009 AW: Ist dieser Code angreifbar? No1: http://de.wikipedia.org/wiki/SQL-Injection#PHP No2: http://www.php.net/manual/de/security.database.sql-injection.php + Multi-Zitat Zitieren
#4 3. Dezember 2009 AW: Ist dieser Code angreifbar? $_POST['form'] = '\' WHERE 1=1 -- '; und alle announcements wären gelöscht. + Multi-Zitat Zitieren