: Jonathan, thanks very much for your help and advice.
: I have taken your warning and implemented a little bit more security
: into the script I have been working on.
You're welcome, and that's great.
: I must say that your security guide gave me a lot of ideas on how to
: lock my code down a bit better. And hey if it only stops one
: SPAMmer, then it was worth it.
Indeed. Because one SPAMmer will generally affect a lot of others.
: When I say down and thought about how this script could be so easily
: mis-used - it made me get to wondering how many other perl scripts
: are out there with zero security being hammered by spammers.
All copies of Matt's Script Archive's formmail.pl, for starters. That one was probably the first "famous" formmail script, but unfortunately contained SPAM holes. Fixes were released, but of course some people don't update... These days a fair few hosting companies just ban the script outright.
: I have also been the victim of an open relay spam attack in the last
: month (through no fault of my own - I inherited an insecure system
: when I began working here). That was quickly turned off, but the
: technique is so damn simple - we will never fight spam unti we have
: holeproof systems and scripts that are harder to break.
There's no such thing as a holeproof system, IMHO, but harder to break is what we DO need. The only time I got particularly annoyed at the guys at the datacenter our company uses is when they deployed a server for us with an open relay (they're generally very good). Within a day or two, it'd been located, exploited and blacklisted. Slowed down deployment of it for a good while; we had to get it off the blacklists, blah.
: Anyway, I have started to ramble. Jonathan - keep up the great work
: and thankyou very much for your kind advice!
You can be sure I'll keep hacking away at stuff, no worries there.
Jonathan
###
for(74,117,115,116){$::a.=chr};(($_.='qwertyui')&&
(tr/yuiqwert/her anot/))for($::b);for($::c){$_.=$^X;
/(p.{2}l)/;$_=$1}$::b=~/(..)$/;print("$::a$::b $::c hack$1.");