-
Halbgott
SQL-Injections verhindern
Moin,
ich mache mir gerade Gedanken darüber, wie ich für mein CMS am besten SQL-Injections verhindern kann. Momentan ist die einzige Usereingabe, die in meine SQL-Strings kommt, eine Seiten-ID, die in der URL angegeben wird. Folgende Ansätze habe ich jetzt, um Injections zu verhindern:
1. Aus dem mit GET übergebenen String mit intval() eine Integer holen und die in den SQL-String bauen
2. Mit einem regulären Ausdruck (gibt's da noch andere Möglichkeiten?) überprüfen, ob der ID-String nur Integers enthält, und - falls das nicht der Fall ist - eine Fehlermeldung ausgeben.
3. Sämtliche Seiten aus der Datenbank holen und mit foreach abgleichen, welche Seite ausgegeben werden soll
Welche dieser Methoden haltet ihr für die beste? Wie verhindert ihr SQL-Injections?
-
Ritter
Ich wäre jedenfalls für die intval-Variante - die ist imo am einfachsten. Das ganze mit RegExps zu überprüfen, wäre ein wenig zu viel Mühe. Die 3te Möglichkeit ist bei größeren Tabellen mit einigen tausend Einträgen wohl zu langsam
-
Ehrengarde
Ich kenne noch die Möglichkeit Variablen, die als Volltext in die Datenbank eingetragen werden zuvor mit addslashes zu bearbeiten.
Alternativ MagicQuotes beim Server einschalten, die bieten nämlich auch einen Schutz vor SQL-Injections.
-
General
Mmmm.
Also in meinem CMS System habe ich dafür 2 Schutz systeme.
1,Nur Init ist zugelassen.
2,Nur wenn die ID Vorhanden ist wird ein Script ausgefürt anderrn falls wird zu einer Error.html die nix weiter tuht als die Tamplete error.CHMST datei auszulesen (CHMST ist meine Tamplete datei ^^ )
-
Moderator
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln