I'm trying to stop the spam!! I run a few for all links pages , but the "spammers" are making it so i dont want to.
Check it out , I get 1000 aday.
http://www.ccds.addr.com/wrc/links/addalink.htmSo what I was "trying" to do is, add a few protection measurse.
1. Have the abilty in the script to deny certian words (sex, make money, etc, etc)
2. DENY HTML/CSS
3. Deny anypost except from certian pages
example my page
my friedns page
Reason for this people have programs that add thousands of links everyDAY!!!! and never come to my page!!
I have tryed to make the mods, but i'm busy learning php. thanks
Script start
--------------------------
----------
----------
----------
----------
----------
----------
----------
----------
-----
#!/usr/local/bin/perl
# Define Variables
$filename = "addalink.htm";
$linksurl = "
http://www.ccds.addr.com/wrc/links/addalink.htm";
$linkscgi = "links.pl";
$linkstitle = "Free for all Links Page";
$database = "database.txt";
# Done
##########################
##########
##########
##########
##########
##########
##
# Get the input
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
# Split the name-value pairs
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9]
)/pack("C"
, hex($1))/eg;
$value =~ s/<([^>]|\n)*>//g;
$value =~ s/<//g;
$value =~ s/>//g;
$FORM{$name} = $value;
}
if ($FORM{'url'} eq '
http://' || $FORM{'url'} !~ /^(f|ht)tp:\/\/\w+\.\w+/) {
&no_url;
}
if (!($FORM{'title'})) {
&no_title;
}
# Enter our tags and sections into an associative array
%sections = ("busi","Business","comp",
"Computers
","educ","
Education"
,
"ente","Entertainment","go
ve","Gover
nment",
"pers","Personal","misc","
Miscellane
ous");
# Suck previous link file into one big string
open(FILE,"$filename");
@lines = <FILE>;
close(FILE);
$i=1;
foreach $line (@lines) {
if ($line =~ /\<li\>\<a href\=\"([^\"]+)\">([^<]+)
<\/a>/) {
if ($FORM{'url'} eq $1) {
&repeat_url;
}
$i++;
}
}
# Open Link File to Output
open (FILE,">$filename");
foreach $line (@lines) { # For every line in our data
if ($line =~ /<!--time-->/) {
@months = ('January','February','Mar
ch','April
','May','J
une',
'July','August','September
','October
','Novembe
r','Decemb
er');
@days = ('Sunday','Monday','Tuesda
y','Wednes
day','Thur
sday',
'Friday','Saturday');
($sec,$min,$hour,$mday,$mo
n,$year,$w
day) = (localtime(time))[0,1,2,3,
4,5,6];
if ($sec < 10) { $sec = "0$sec"; }
if ($min < 10) { $min = "0$min"; }
if ($hour < 10) { $hour = "0$hour"; }
if ($mday < 10) { $mday = "0$mday"; }
$year += 1900;
$date = "on $days[$wday], $months[$mon] $mday, $year at $hour:$min:$sec";
print FILE "<!--time--><b>Last link was added $date</b><hr>\n";
}
elsif ($line =~ /<!--number-->/) {
print FILE "<!--number--><b>There are <i>$i</i> links on this ";
print FILE "page.</b><br>\n";
}
else {
print FILE $line;
}
foreach $tag ( keys %sections) { # For every tag
if ( ($FORM{'section'} eq $sections{$tag}) &&
($line =~ /<!--$tag-->/) ) {
print FILE "<li><a href=\"$FORM{'url'}\">$FOR
M{'title'}
</a>\n";
}
}
}
close (FILE);
# Return Link File
print "Location: $linksurl\n\n";
if ($database ne '') {
open (DATABASE,">>$database");
print DATABASE "$FORM{'url'}\n";
close(DATABASE);
}
sub no_url {
print "Content-type: text/html\n\n";
print "<html><head><title>ERROR:
No URL</title></head>\n";
print "<body bgcolor=#FFFFFF text=#000000><center>";
print "<h1>No URL</h1></center>\n";
print "You forgot to enter a url you wanted added to the Free for ";
print "all link page. Another possible problem was that your link ";
print "was invalid.<p>\n";
print "<form method=POST action=\"$linkscgi\">\n";
print "<input type=hidden name=\"title\" value=\"$FORM{'title'}\">\
n";
print "<input type=hidden name=\"section\"";
print "value=\"$FORM{'section'}\
">\n";
print "URL: <input type=text name=\"url\" size=50><p>\n";
print "<input type=submit> * <input type=reset>\n";
print "<hr>\n";
print "<a href=\"$linksurl\">$linkst
itle</a>\n
";
print "</form></body></html>\n";
exit;
}
sub no_title {
print "Content-type: text/html\n\n";
print "<html><head><title>ERROR:
No Title</title></head>\n";
print "<body bgcolor=#FFFFFF text=#000000><center>";
print "<h1>No Title</h1></center>\n";
print "You forgot to enter a title you wanted added to the Free for ";
print "all link page. Another possible problem is that you title ";
print "contained illegal characters.<p>\n";
print "<form method=POST action=\"$linkscgi\">\n";
print "<input type=hidden name=\"url\" value=\"$FORM{'url'}\">\n"
;
print "<input type=hidden name=\"section\"";
print "value=\"$FORM{'section'}\
">\n";
print "TITLE: <input type=text name=\"title\" size=50><p>\n";
print "<input type=submit> * <input type=reset>\n";
print "<hr>\n";
print "<a href=\"$linksurl\">$linkst
itle</a>\n
";
print "</form></body></html>\n";
exit;
}
sub repeat_url {
print "Content-type: text/html\n\n";
print "<html><head><title>ERROR:
Repeat URL</title></head>\n";
print "<body bgcolor=#FFFFFF text=#000000><center><h1>R
epeat URL</h1></center>\n";
print "Sorry, this URL is already in the Free For All Link Page.\n";
print "You cannot add this URL to it again. Sorry.<p>\n";
print "<a href=\"$linksurl\">$linkst
itle</a>";
print "</body></html>\n";
exit;
}
--------------------------
----------
----------
----------
----------
----------
----------
----------
----------
-----