check for valid mirror URLs
This commit is contained in:
parent
68382b9370
commit
3ded040939
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/www/; revision=36332
1 changed files with 23 additions and 10 deletions
|
@ -1,18 +1,31 @@
|
||||||
#!/usr/bin/perl -T
|
#!/usr/bin/perl -T
|
||||||
# (c) Wolfram Schneider, Berlin. June 1996. Public domain.
|
# (c) 1996-2010 Wolfram Schneider. Public domain.
|
||||||
#
|
#
|
||||||
# FreeBSD WWW mirror redirect
|
# FreeBSD WWW mirror redirect
|
||||||
#
|
#
|
||||||
# $FreeBSD: www/en/cgi/mirror.cgi,v 1.3 1999/09/06 07:02:40 peter Exp $
|
|
||||||
|
|
||||||
$_ = $ENV{'QUERY_STRING'};
|
use CGI;
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
|
||||||
s/^[^=]+=//; # 'variable=value' -> 'value'
|
my $debug = 1;
|
||||||
s/\+/ /g; # '+' -> space
|
my $master_url = 'http://www.freebsd.org/';
|
||||||
s/%(..)/pack("c",hex($1))/ge; # '%ab' -> char ab
|
|
||||||
|
|
||||||
print "Window-target: _top\n";
|
my $q = new CGI;
|
||||||
print "Location: $_\n";
|
my $url = $q->param('goto') || "";
|
||||||
print "Content-type: text/plain\n\n";
|
|
||||||
|
if ( $url =~ m,^http://[a-z0-9\.]+\.freebsd\.org/?$,i
|
||||||
|
|| $url =~ m,^http://[a-z0-9\.]+\.freebsd\.org/www\.FreeBSD\.org/(data)?$,i
|
||||||
|
|| $url =~ m,^http://(freebsd\.unixtech\.be|www\.gufi\.org/mirrors/www.freebsd.org/data)/$,i
|
||||||
|
)
|
||||||
|
{
|
||||||
|
# ok
|
||||||
|
}
|
||||||
|
|
||||||
|
else {
|
||||||
|
warn "Ignore illegal redirect URL: $url\n" if $debug;
|
||||||
|
$url = $master_url;
|
||||||
|
}
|
||||||
|
|
||||||
|
print $q->redirect($url);
|
||||||
|
|
||||||
exit 0;
|
|
||||||
|
|
Loading…
Reference in a new issue