Am 08.12.2012 17:40, schrieb
Peter Otten:
Hallo Peter,
auch diese ist erst mal Falsch abgesandt worden Sorry Peter.
Also das würde ich jetzt dazu zählen schließlich könnte man das
gebrauchen um
bösen Code auszuführen.
Albert Hermeling
wrote:
Guten Morgen,
ich Beschäftige mich gerade mit mit den Internas von Python
Funktionen.
Beim Nachdenken über Funktionen, habe ich mich gefragt, ob man
Code beim
erzeugen einer Funktion unbemerkt ausführen kann. Klinkt jetzt
ein
bisschen verworren, deshalb hier ein Beispiel:
s = """
def printer():
print("Böse Funktion: ", dir())
"""
Diese Funktion liegt als String vor und wenn ich jetzt aus dem
String
mit exec eine Funktion erzeuge (Instantiiere (?)) habe ich
eine Funktion
printer im aktuellen Namensraum. So lange ich diese Funktion
nicht
aufrufe, passiert nichts, rufe ich Sie auf passiert was. Ist
es jetzt
eigentlich möglich, das bei der Erzeugung (exec(s) genau
jetzt), also
noch vor dem Aufrufen der selbigen, Schadcode ausgeführt
werden kann?
Ich hoffe das klingt jetzt nicht zu bizarr.
Zählt die Erzeugung von Defaultwerten?
def
printer(default=print("gotcha")):
... pass
...
gotcha
_______________________________________________
python-de maillist - python-de@python.org
http://mail.python.org/mailman/listinfo/python-de