Ist "sql_query" sicher ?

Begonnen von Lazar, 18 Januar 2007, 06:36:25

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

Lazar

Hi, ich hätte mal eine Frage, bei der ich mir nicht sicher bin:

Bin ich in eigenen Scripten (die das PragmaMX einbinden) die Funktion "sql_query" verwenden eigendlich zuverlässig vor SQL-Injection geschützt, oder muss ich die Eingaben vorher nochmal separat prüfen ?

(Auf den ersten Blick sieht die Funktion ja so aus, als wenn sie sicher ist. Bin aber noch Anfänger, daher die Frage).

jubilee

ZitatBin ich in eigenen Scripten (die das PragmaMX einbinden) die Funktion "sql_query" verwenden eigendlich zuverlässig vor SQL-Injection geschützt, oder muss ich die Eingaben vorher nochmal separat prüfen ?

Benutzereingaben sind IMMER zu prüfen. Unabhängig davon ob das System das vielleicht auch macht.

Zitat(Auf den ersten Blick sieht die Funktion ja so aus, als wenn sie sicher ist. Bin aber noch Anfänger, daher die Frage).

Soso, das hast Du an der Funktion sql_query in der includes/sql_layer.php "gesehen" ?
Oder hast Du dir auch noch andere Dateien angesehen ?

Generell ist zu sagen, das "Sicherheit" kein statischer Zustand ist. Was heute "sicher" ist, kann morgen schon wieder ganz anders sein. Wenn man ein sicheres System haben möchte, schreibt man seine Scripte so, das da nix passieren kann.
1. Script vor direkten Aufrufen schützen.
2. Benutzereingaben immer verifizieren
3. Keine Variablen in include oder require Statements
4. ....
5. ...

usw.. usf ...

Lazar

Zitat von: jubilee am 18 Januar 2007, 10:30:52
ZitatBin ich in eigenen Scripten (die das PragmaMX einbinden) die Funktion "sql_query" verwenden eigendlich zuverlässig vor SQL-Injection geschützt, oder muss ich die Eingaben vorher nochmal separat prüfen ?

Benutzereingaben sind IMMER zu prüfen. Unabhängig davon ob das System das vielleicht auch macht.

Zitat(Auf den ersten Blick sieht die Funktion ja so aus, als wenn sie sicher ist. Bin aber noch Anfänger, daher die Frage).

Soso, das hast Du an der Funktion sql_query in der includes/sql_layer.php "gesehen" ?
Oder hast Du dir auch noch andere Dateien angesehen ?

Ich habe mir die aufgerufene Funktion "function mxDetectCheckQuery($query)" angesehen.

Aber vielen Dank für Deinen Hinweis, das ich die Eingaben auf Gültigkeit überprüfen muss.
Bei meiner Frage ging es ausdrücklich um SQL-Injects.
Und da finde ich es nicht Sinnvoll das 5 mal zu prüfen.

P.S.: Sorry das ich gefragt habe.

jubilee

ZitatIch habe mir die aufgerufene Funktion "function mxDetectCheckQuery($query)" angesehen.
Genau das wollte ich wissen. Schließlich hast du geschrieben
Zitatdie Funktion "sql_query" ......(Auf den ersten Blick sieht die Funktion ja so aus, als wenn sie sicher ist....).
Da hast Du dich "ausdrücklich" auf die Funktion sql_query bezogen.
Und an der kannst du nur sehen, das etwas gemacht wird, aber nicht was und ob das "sicher" ist.
(Kannst du an der mxDetectCheckQuery überigends auch nicht. Dazu musst Du dir die verwendeten Signaturen etwas weiter unten in der mx_detect.php bei mxDetectGetSignatures() ansehen)

ZitatAber vielen Dank für Deinen Hinweis, das ich die Eingaben auf Gültigkeit überprüfen muss.
Bei meiner Frage ging es ausdrücklich um SQL-Injects.
Injections bei Datenbankabfragen können ja nun nur von Variablen (resp. deren Inhalt) bzw. von Benutzereingaben kommen, die in einer Datenbankabfrage verwendet werden. In statischen Datenbankabfragen gibt es keine injections...

ZitatUnd da finde ich es nicht Sinnvoll das 5 mal zu prüfen.
Nochmal Benutzereingaben sind IMMER zu verifizieren. Wenn Du glaubst das dies nicht "sinnvoll" ist, dann ist das Deine Sache. Nur unsere "Detection"-Funktionen ist keine "Zauberfunktionen". Auch dort könnten Fehler drinne sein oder es fehlt ganz einfach eine Signatur für eine bestimmte Art von Injection.

ZitatP.S.: Sorry das ich gefragt habe.
Ja, sorry das ich geantwortet habe. Eine Garantie, das meine Antworten den Fragesteller gefallen, brauch ich (aufgrund das hier ja alles kostenlos ist) gottseidank ja nicht zu geben.
Nur weiss ich im Momenbt wirklich nicht, was Dir an meiner vorigen Antwort missfallen hat ...

Lazar

Zitat von: jubilee am 19 Januar 2007, 18:29:03
Nur unsere "Detection"-Funktionen ist keine "Zauberfunktionen". Auch dort könnten Fehler drinne sein oder es fehlt ganz einfach eine Signatur für eine bestimmte Art von Injection.

Irgendwie drehen wir uns im Kreis: Eben WEIL ich die Funktionen NICHT bis in das kleinste Detail verstehe frage ich nach, ob sie einigermaßen vor SQL-Inj. schützt.
Und warum ich lieber die von Euch nehme als eine Eigene zu schreiben ?: Eben weil ich ein Anfänger bin der glaubt das ihr das besser könnt.

Also fasse ich die Antwort auf meine Frage kurz zusammen: Im Prinzip werden die Datenbankabfragen überprüft, man sollte sich aber nicht drauf verlassen.

P.S.: Schön, das ihr alle User für die größten Deppen haltet. Das ich in meinen eigenen fixen Abfragen keine Angriffe gegen mich selber einbaue sollte eigendlich klar sein...

@MOD: Bitte schließen... tnx.

Andi

Moin :)

bleibt friedlich Freunde  :puzzled: ;)

ZitatAlso fasse ich die Antwort auf meine Frage kurz zusammen: Im Prinzip werden die Datenbankabfragen überprüft, man sollte sich aber nicht drauf verlassen.
So ist es ;) In dem Falll ist doppelt gemoppelt besser.

Hatte dazu mal was angefangen:
http://www.pragmamx.org/modules.php?name=Forum&topic=16818.msg116671#msg116671


ZitatSchön, das ihr alle User für die größten Deppen haltet.

Das macht sicher hier Niemand. Aber wir weisen lieber mehrfach darauf hin. Gerade in letzter Zeit wurden hier recht viele Modifikationen vorgestellt, wo selbst die mindesten Sicherheitsgrundsätze nicht beachtet wurden.
schön´s Grüssle, Andi

Lazar

Danke Andi,
der Beitrag ist Klasse.
werde meine Scripte direkt mal anpassen.

(Leider nimmt die Zahl der Spinner die selbst uneigennützige Seiten hacken immer größer).