dedlfix: mysql ID in php als Link ausgeben

Beitrag lesen

Hi!

Mit der zusätzlichen Verwendung der PHP-Funktion mysql_real_escape_string maskierst du auch etwaige falsche oder böse Werte.

Vorsicht! mysql_real_escape_string() ist für den String-Kontext gedacht. Eine Zahl ohne begrenzende Anführungszeichen notiert ist aber kein String-Kontext. Deshalb braucht sich ein Angreifer auch nicht die Mühe zu machen, ihn zu verlassen, um in den Anweisungsteil zu gelangen. Denn er ist bereits drin und kann sofort loslegen. Außerdem braucht er noch nicht einmal Anführungszeichen um einen String zu notieren, sollte er einen für sein Werk benötigen.

Eine vorherige Prüfung, ob der Wert von $_GET["ID"] in das passende Schema passt (hier eine Ganzzahl/Integer), darf ebenfalls nicht fehlen.

Das wäre wichtig, kann aber gleich anstelle des falsch verwendeten mysql_real_escape_string() eingesetzt werden.

$query = "SELECT * FROM FW_Fehlerbericht WHERE ID = ".mysql_real_escape_string($_GET["ID"]);

Richtiger: $query = "SELECT * FROM FW_Fehlerbericht WHERE ID = " . intval($_GET["ID"]);

intval() sorgt garantiert für einen Integer-Wert. Im Zweifelsfall ist dieser 0.

Ausserdem informiere dich über das Stichwort SQL Injection.
...ist Hausintern, nichts öffentliches!

Auch hausintern gibt es genügend Angriffsmotivation und -gelegenheiten.

Lo!