If you are on a UNIX system, often you can run the script suid, so that it
is running as an authenticated user rather than "nobody" or "httpd". In most
cases, it's a simple matter of:

Step 1: chmod 4711 <scriptname.cgi>

Step 2: Change the shebang line to #!/usr/bin/perl -U

However, this will only work if the web server is configured to support
running scripts suid.

That's probably the most effective way to do it. You can try authenticating
based on an IP address or domain, but those environment variables can be
spoofed. You can still add this checking to keep unsophisticated hackers
from bothering you; just know that it isn't foolproof.

my $good_referer = 'my.domain.com/form.html';
my $good_address = '??.??.???.???'; # your IP
my $real_referer = $ENV{'HTTP_REFERER'};
my $real_address = $ENV{'REMOTE_ADDR'};

if($real_referer ne $good_referer) or
($real_address ne $good_address)
{
  # boot 'em
}
else
{
  # do your thing
}


-----
Scot Robnett
inSite Internet Solutions
[EMAIL PROTECTED]
http://www.insiteful.tv


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to