woodfighter: Achtung Sicherheitslücke(n)

Beitrag lesen

Tach,

$ID = $_REQUEST[ID];
$Table = UTF8_decode($_REQUEST['Table']);
$DB = UTF8_decode($_REQUEST['DB']);
$View = $_REQUEST[View];

$verbindung=mysql_connect(ini_get("mysqli.default_host"), "root", "") or 
    die("Error: <br>".mysql_error()); 
mysql_select_db($DB, $verbindung)
// Anfrage an DB-Server
mysql_query("UPDATE $Table SET Sub = 1 WHERE ID = 7");

ok, das fehlende Semikolon ist ja dann inzwischen gefunden, aber du hast noch ein weiteres großes Sicherheitsproblem namens SQL-Injection; so wie das im Moment aussieht kann ein Angreifer belibige Daten in beliebige Tabellen schreiben (auf die der User mit dem Namen root Zugriff hat), indem er passende Requests an den Server schickt. In diesem Falle hast du erstens vergessen den Kontextwechsel zu beachten, aber zweitens ist ansonsten auch das Konzept so gewählt, dass das geht (sofern du nicht weitere Überprüfungen der Daten beim Posten weggelassen hast). Allgemein solltest du auch nicht mit dem User root (von dem ich annehme, dass er Superuser-Rechte auf der Datenbank hat) auf die Datenbank zugreifen, solange du es nicht aus administrativben Gründen tust, die genau diese Rechte benötigen (Principle of least privilege).

mfg
Woodfighter