Seite 1 von 1

Verfasst: Donnerstag 29. Juni 2006, 18:19
von Leonidas
murph hat geschrieben:aber das lößt nicht das problem, wenn einer "; DROP users" heißt...
Nein, welches Problem sollte es dann lösen? "; DROM users" ist eine typische SQL_Incejtion und eben dafür hat BlackJack das Lösungsverfahren aufgezeigt.

Verfasst: Donnerstag 29. Juni 2006, 18:27
von murph
soweit, wie ich das verstanden habe, ist das, um weitere befehle anzunehmen.

Code: Alles auswählen

>>> def a(*args):
...     print args
...
>>>
>>> a()
()
>>> a("hallo")
('hallo',)
>>> a("hallo","du")
('hallo', 'du')
aber wieso soll das vor dem usernamen ";DROP users" schützen?
da habe ich leider noch zu wenig erfahrung, um da einen zusammenhang zu sehen.

Verfasst: Donnerstag 29. Juni 2006, 21:52
von Leonidas
murph hat geschrieben:aber wieso soll das vor dem usernamen ";DROP users" schützen?
Stimmt, das was du gemacht hast, schützt keinen deut. Aber lies doch mal genauer was BlackJack geschrieben hat:
BlackJack hat geschrieben:Und neben `sql` sollte es noch einen extra Parameter für eventuelle Argumente geben die dann als zweites Argument an die `execute()` Methode des Cursors übergeben werden um SQL-Injection Angriffe zu verhindern.
Und jetzt noch ein Link dazu.

Verfasst: Freitag 30. Juni 2006, 14:57
von murph
ich habs gefunden:
That's all there is to it. Pass y as a parameter, and all your cracker will do is set the value of name to their string, as pysqlite will trawl through and make sure there are no double quotes within the string to be inserted.
vorhaer wusste ich gar nichts von dieser zusatzfunktion von pysqlite2.
naja, wenn man ein modul nicht gut genug kennt.......
x,X

Verfasst: Freitag 30. Juni 2006, 15:43
von Leonidas
murph hat geschrieben:vorhaer wusste ich gar nichts von dieser zusatzfunktion von pysqlite2.
Das ist keine Zusatzfunktion von PySQLite sondern Teil des PEP 249: DB-API 2.0 und wird daher von allen DB-API 2.0 kompatiblen Bindings bereitgestellt.