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

Problem mit CGI::Fast und Taint Modus

Leser: 3


<< >> 1 Eintrag, 1 Seite
darlin
 2008-04-21 15:22
#108634 #108634
User since
2008-04-21
1 Artikel
BenutzerIn
[default_avatar]
Hallo

Ich experimentiere im Moment mit CPAN:CGI::Fast herum und bin auf ein kleines (?) Problem gestoßen. Zur Erläuterung 2 Beispiele, eins mit und eins ohne FastCGI:

test.cgi
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/perl -T

use strict;
use warnings;
use CGI;
use CGI::Carp qw/fatalsToBrowser/;
use Scalar::Util qw(tainted);

my $q = new CGI;
print $q->header;
print "PID: ",$q->b($$);
print $q->br;
my $cmd = $q->param('cmd');

if (tainted($cmd)) {
        print $q->b('$cmd is tainted');
}
print $q->br;
print "Taint Mode aktiv: ${^TAINT}";
print $q->end_html


test.fcgi
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/perl -T

use strict;
use warnings;
use CGI::Fast;
use CGI::Carp qw/fatalsToBrowser/;
use Scalar::Util qw(tainted);
while (my $q = new CGI::Fast) {
        print $q->header;
        print "PID: ",$q->b($$);
        print $q->br;
        my $cmd = $q->param('cmd');
        if (tainted($cmd)) {
               print $q->b('$cmd is tainted');
        }
        print $q->br;
        print "Taint Mode aktiv: ${^TAINT}";
        print $q->end_html;

}


Normalerweise sollten beide '$cmd is tainted' ausgeben. Das tut aber nur 'test.cgi'. Bei beiden ist der Taint Mode laut ${^TAINT} aber aktiviert.
Muss ich bei CGI::Fast noch was extra aktivieren ?

mfg Darlin
<< >> 1 Eintrag, 1 Seite



View all threads created 2008-04-21 15:22.