Checken der Eingaben in die Datenbank

Sicheres php codieren.
Antworten
k00ni
Beiträge: 1474
Registriert: 22. Juni 2006, 16:44
Kontaktdaten:

Checken der Eingaben in die Datenbank

Beitrag von k00ni » 11. März 2007, 14:14

Hallo,

was sollte man alles für Funktionen über eine Variable rutschen lassen, welche in einem SQL-Query verwendet wird.

Folgendes habe ich mir bereits überlegt:
- html blocken
- SQL-Sonderzeichen, wie einfache und doppelte Anführungsstriche, Semikolon blocken
- Wörter wie SELECT, FROM, WHERE und das "=" blocken

Sollte eine Variable diese enthalten bricht entweder die Routine ab oder die Zeichen werden auskommentiert.

Gedanken dazu? Was kann man noch einbauen? Gibt es sowas bereits als Implementierung in einem der pScripte?

k00ni
Beiträge: 1474
Registriert: 22. Juni 2006, 16:44
Kontaktdaten:

Checken der Eingaben in die Datenbank

Beitrag von k00ni » 11. März 2007, 15:43

So habe aus einem alten Skript von mir folgende Funktion ausgekramt

Code: Alles auswählen

function  check_variable_status ($variable_contents)
{  
$break = false;
                  
for ($i=0; $i<count ($variable_contents); $i++) 
{
     if (strpos ($variable_contents [$i], "\"") OR 
         strpos ($variable_contents [$i], "'") OR
         strpos ($variable_contents [$i], "=") OR
         strpos ($variable_contents [$i], "<") OR
         strpos ($variable_contents [$i], ",") OR
         strpos ($variable_contents [$i], ";"))
    {
           $break = true;
           break;                
    }
}

return $break;    
} 
Sie erkennt sowohl HTML-Tags, als auch SQL-Statements.


k00ni
Beiträge: 1474
Registriert: 22. Juni 2006, 16:44
Kontaktdaten:

Checken der Eingaben in die Datenbank

Beitrag von k00ni » 11. März 2007, 16:26

Danke, statt zu blocken, maskiert man einfach, auch nicht schlecht. Hab zu lange C# gemacht, kenne fast keine PHP-Funktionen mehr :ugly:

Antworten