Schutz vor SQL-Injections...
-
Wie schützt man sich am besten vor SQL-Injections ?
Hochkomma Semikolon und so rausfiltern ? Oder zum Bleistift so umwandeln:
str_replace("'","& #0027 ;",$quellvariable); (& und ; gespaced, damit es angezeigt wird :D)...oder wie geht ihr da vor ?
-
In PHP brauchst keine Angst zu haben, da mysql_query (nehme mal an du benutzt mysql, bei den anderen wird es auch so sein),
jeweils nur 1 Query akzeptiert, somit kann man nicht mal eben an dein Query eine
weitere Abfrage anhängen.
Du solltest allerdings pro Query wirklich nur die Spalten angeben die benötigt
werden sonst kann der Bösewicht vllt. doch etwas herausbekommen. Aber wenn du
das einhälst nützten ihm alle Informationen über den Aufbau deiner DB nichts,
weil er sie nicht abfragen kann.Vllt. ganz interrassant: http://heise.de/security/artikel/43175
-
naja, aber sql injections sind scheinbar trotzdem möglich:
http://www.securiteam.com/unixfocus/5SP0N2A9QO.html...jo, interessanter artikel bei heise
-
Ist dann aber schlampigkeit des Coders, man kann für SQL-Querrys Platzhalter
benutzen, lies dir mal den heise-artikel von mir durch.
-
Hmm, das mit den Platzhaltern ist nen Rätsel für mich - Hast Du evtl. nen Code-Beispiel ?
-
Sendet man einfach den SQL-Query mit "?" als Platzhalter für die Variablen ?
Sendet man die Variablen dann irgendwie mit nem 2. SQL-Query ?
Erkennt MySQL dann selber wenn in er Variable dann 'böse' Sachen stehen ?
-
-
In Perl würde das so aussehen:
my $inhalt = "Wert"; $dbh->do (qq{ SELECT * FROM table where spalte = ? }, undef, $inhalt);
-
thx!