Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]12238[/thread]

XSS und SQL-Injektion verhindern (Seite 2)

Leser: 1


<< |< 1 2 >| >> 19 Einträge, 2 Seiten
pq
 2008-07-24 16:29
#112609 #112609
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
Gast+2008-07-24 14:22:23--
Spricht etwas gegen den Einsatz von URI::Escape ?

gar nicht, solltest du halt da verwenden, wo nötig. hier bieten die beiden template-module, die
ich oben nannte, auch eine escaping-funktion, nur als default will man das sicher nicht verwenden.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
LanX-
 2008-07-24 17:34
#112614 #112614
User since
2008-07-15
1000 Artikel
BenutzerIn

user image
pq+2008-07-24 14:28:03--
LanX-+2008-07-24 13:39:24--
BTW: Ist der Taint-modus hier aus der Mode gekommen?

schützt dich taint-mode vor sql-injections?


nein aber er zwingt mich input zu filtern und im idealfall zu validieren.
ich meine es auch nicht als ersatz für platzhalter und escaping sondern als vorstufe.

pq+2008-07-24 14:28:03--
dort verwende ich den taint-mode nicht, weil er auch
bei platzhaltern meckert. ebenso kann taint-mode gar nichts gegen xss ausrichten.
und genau diese beiden sachen waren doch gefragt.


Danke, beantwortet doch meine Frage! : )

ich persönlich finds immer befremdend wenn mir eine WEB-Applikation einen SQL-Fehler ausspukt weil man *nur* Platzhalter benutzt und nicht validiert...aber jedem das seine.
pq
 2008-07-24 18:10
#112619 #112619
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
LanX-+2008-07-24 15:34:19--
ich persönlich finds immer befremdend wenn mir eine WEB-Applikation einen SQL-Fehler ausspukt weil man *nur* Platzhalter benutzt und nicht validiert...aber jedem das seine.

wie meinst du das? wer sagt, ich validiere nicht? die frage war, wie verhindere ich sql-injections.
dass man davor noch ein bisschen validieren kann, wird ja von platzhaltern nicht ausgeschlossen.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
pq
 2008-07-24 18:22
#112624 #112624
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
und wens interessiert:
Wiki:CgiSicherheit
wurde alles schonmal aufgeschrieben.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
LanX-
 2008-07-24 18:22
#112625 #112625
User since
2008-07-15
1000 Artikel
BenutzerIn

user image
pq+2008-07-24 16:10:35--
wie meinst du das? wer sagt, ich validiere nicht?


niemand ...

LanX-+2008-07-24 15:34:19--
ich meine es auch nicht als ersatz für platzhalter und escaping sondern als vorstufe.


Meine Frage war wieso Taint-Modus aus der Mode * ist, musste aber gerade mit erschrecken rausfinden dass es gegen XSS eigentlich wenig erzwingt:

Quote
Arguments to "print" and "syswrite" are not checked for taintedness.


[*] in meinem Perl-Cookbook steht -T als erster Punkt im Kapitel "Writing secure CGI-programs"
Gast Gast
 2008-07-24 18:56
#112634 #112634
Auf einem Win-Server funktioniert -T auch nur dann, wenn der Admin das entsprechend eingestellt hat.
Der User de Serveraccounts, hat da keine Chance.
renee
 2008-07-24 19:01
#112638 #112638
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
LanX-+2008-07-24 16:22:55--
Meine Frage war wieso Taint-Modus aus der Mode * ist, musste aber gerade mit erschrecken rausfinden dass es gegen XSS eigentlich wenig erzwingt:

Quote
Arguments to "print" and "syswrite" are not checked for taintedness.


[*] in meinem Perl-Cookbook steht -T als erster Punkt im Kapitel "Writing secure CGI-programs"


Der Taint-Modus ist sinnvoll, aber man sollte auch wissen, dass es Funktionen/Operatoren in Perl gibt, die automatisch ein untaint machen obwohl es vom User vielleicht nicht unbedingt gewollt ist. Also nicht immer blind darauf vertrauen, dass Daten wirklich tainted sind.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
LanX-
 2008-07-24 19:55
#112645 #112645
User since
2008-07-15
1000 Artikel
BenutzerIn

user image
renee+2008-07-24 17:01:17--
Also nicht immer blind darauf vertrauen, dass Daten wirklich tainted sind.


Hmm, ich hätte schon gerne ein taintcheck bei print... grummel.

Für mich lohnen sich selten Templates, das sind oft nur Here-Docs mit Variableninterpolation die in Funktionen gekapselt werden.

Hab mal geschaut, CGI.pm realisiert mit Vars ein tied hash "params", da könnte man also auch ohne Performanceverlust alternativ genauso ein tied hash "escaped_params" basteln.

Zusätzlich könnte man eventuell über overloading von "" oder . ein "is_tainted check" bei Variableninterpolation erzwingen. (EDIT: naja wär aber Blödsinn wenns dann global gilt, statt nur für print)
LanX-
 2008-07-24 20:13
#112648 #112648
User since
2008-07-15
1000 Artikel
BenutzerIn

user image
ah zu kompliziert gedacht, ich kann ja auch statt print "$var ..." eine Routine out("$var ...") basteln die den übergebenen string auf tainting checked.
<< |< 1 2 >| >> 19 Einträge, 2 Seiten



View all threads created 2008-07-24 13:01.