Schrift
[thread]12363[/thread]

Wiki: Häufige Fehler und Fallen (Seite 3)



<< |< 1 2 3 >| >> 23 Einträge, 3 Seiten
LanX-
 2008-08-18 18:34
#113673 #113673
User since
2008-07-15
1000 Artikel
BenutzerIn

user image
also für mich wars schon ein ziemliches AHA, als ich merkte dass man in String-Interpolationen auch Code ausführen kann, was aber logisch ist weil intern der String in eine Concatination überführt wird.

Wenn ihr das nicht erwähnenswert findet, will ich nicht weiter dafür streiten...

Aber du hast mein Besispiel nicht ganz verstanden, cih spreche von generierten Scripten , also sowas
Code (perl): (dl )
 print GEN_SCRIPT "\$NAME=\"$param('name')\";\n" 


Blödes Beispiel:

Leute hätten gerne eine Aktion ausgeführt wenn in einem Thread in dem sie mitdiskutieren was passiert, z.B. bei Selfhtml. In einer Web-Maske füllen sie ihre Daten aus und ich baue ein vorkonfiguriertes Script.pl das für sie Selfhtml pollt, checkt und reagiert.

Das Beispiel ist blöd, weil hier die Daten selbst vom potentiel geschädigten stammen, aber ich bin mir fast sicher dass es im Unix-Umfeld auch generierte Init-Scripte gibt. Und dann wären Doublequotes bedenklich...
betterworld
 2008-08-18 21:11
#113677 #113677
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
LanX-+2008-08-18 16:34:21--
Das Beispiel ist blöd, weil hier die Daten selbst vom potentiel geschädigten stammen, aber ich bin mir fast sicher dass es im Unix-Umfeld auch generierte Init-Scripte gibt. Und dann wären Doublequotes bedenklich...


Hmm. Auch mit Single-Quotes sollte man das nicht machen..
Also, wenn ich Dich richtig verstanden habe, generiere ich eine Datei, die so aussieht:
Code: (dl )
my $var = 'DATEN';

Wobei der String "DATEN" von einer nicht vertrauenswürdigen Quelle kommt. Da liegt es dann ja nahe, statt "DATEN" so etwas anzugeben:
Code: (dl )
blah' . `rm -rf /` . 'blah
LanX-
 2008-08-18 23:13
#113678 #113678
User since
2008-07-15
1000 Artikel
BenutzerIn

user image
Ja, aber bei singlequotes reicht es beim untainting ' auszuschließen, bei doublequotes reicht es wie demonstriert eben nicht nur " auszuschließen...

Unabhängig davon das man beim untainting besser mit einer minimalen whitelist statt einer (maximalen) blacklist arbeiten sollte.

NACHTRAG:

* Autovivification bei Test auf Existenz
Schönes Beispiel von pq http://board.perl-community.de/thread/12372/#MSG10

* Lazy Evaluation bei AND und OR

* Operatorklammerung bei AND, OR und NOT im Gegensatz zu &&, || und !
<< |< 1 2 3 >| >> 23 Einträge, 3 Seiten



View all threads created 2008-08-16 20:18.