#!/usr/local/bin/perl -w
my
$r
= Apache->request;
local
$ENV
{PATH} =
"/bin"
;
$r
->content_type(
"text/plain"
);
$r
->send_http_header;
my
$sub
=
$r
->args;
$sub
=~ s/\W+//g;
my
$tests
= {
args
=>
sub
{
eval
{
system
$r
->args };
die
"TaintCheck failed, I can `system \$r->args'"
unless
$@;
},
env
=>
sub
{
eval
{
system
$ENV
{SERVER_SOFTWARE} };
die
"TaintCheck failed, I can `system $ENV{SERVER_SOFTWARE}'"
unless
$@;
},
header_in
=>
sub
{
eval
{
system
$r
->header_in(
'User-Agent'
) };
die
"TaintCheck failed, I can `system \$r->header_in('User-Agent')'"
unless
$@;
},
content
=>
sub
{
my
$content
=
$r
->content;
eval
{
system
$content
};
die
"TaintCheck failed, I can `system $content'"
unless
$@;
},
};
&{
$tests
->{
$sub
} };
$r
->
print
(
"OK"
);