#!/usr/bin/perl # # $Id: redirect.cgi,v 0.1 2004/09/26 00:00:00 marco Exp $ # use CGI qw(param); $swroot="/var/ipfire"; my %netsettings; my %filtersettings; &readhash("$swroot/ethernet/settings", \%netsettings); &readhash("$swroot/urlfilter/settings", \%filtersettings); $category=param("category"); $url=param("url"); $ip=param("ip"); if ($filtersettings{'MSG_TEXT_1'} eq '') { $msgtext1 = "A C C E S S    D E N I E D"; } else { $msgtext1 = $filtersettings{'MSG_TEXT_1'}; } if ($filtersettings{'MSG_TEXT_2'} eq '') { $msgtext2 = "Access to the requested page has been denied"; } else { $msgtext2 = $filtersettings{'MSG_TEXT_2'}; } if ($filtersettings{'MSG_TEXT_3'} eq '') { $msgtext3 = "Please contact the Network Administrator if you think there has been an error"; } else { $msgtext3 = $filtersettings{'MSG_TEXT_3'}; } if ($category eq '') { $category = ' '; } else { $category = '['.$category.']'; } print "Pragma: no-cache\n"; print "Cache-control: no-cache\n"; print "Connection: close\n"; print "Content-type: text/html\n\n"; print < END ; if (($filtersettings{'ENABLE_JPEG'} eq 'on') && (-e "/home/httpd/html/images/urlfilter/background.jpg")) { print < END ; } else { print < END ; } print <
$category
$msgtext1
$msgtext2 END ; if (!($url eq "")) { print <URL: $url END ; } if (!($ip eq "")) { print <Client IP address: $ip END ; } print <

$msgtext3

Web Filtering by IPCop and SquidGuard
END ; sub readhash { my $filename = $_[0]; my $hash = $_[1]; my ($var, $val); if (-e $filename) { open(FILE, $filename) or die "Unable to read file $filename"; while () { chop; ($var, $val) = split /=/, $_, 2; if ($var) { $val =~ s/^\'//g; $val =~ s/\'$//g; # Untaint variables read from hash $var =~ /([A-Za-z0-9_-]*)/; $var = $1; $val =~ /([\w\W]*)/; $val = $1; $hash->{$var} = $val; } } close FILE; } }