В http://www.mypagerank.net/index.html предлагат скрипт, който предпазвал от спам във формулярите. Изтеглих го и сега му се чудя.
Преди време си публикувах email-а в моя сайт и бързо-бързо ме заринаха със всякакъв спам. После си направих една форма за обратна връзка и за 2 години нямах проблем. От 3 месеца от тая форма ми идват спам, съдържащи хиперлинкове.
Ето скрипта:
Преди време си публикувах email-а в моя сайт и бързо-бързо ме заринаха със всякакъв спам. После си направих една форма за обратна връзка и за 2 години нямах проблем. От 3 месеца от тая форма ми идват спам, съдържащи хиперлинкове.
Ето скрипта:
Код:
<?php
/* * * * * * * * * * * * * * * * * * * *
* SmE Protect *
* --------------------- *
* copyright: (C) 2006 Scriptme *
* email: support@scriptme.com *
* created by: Scriptme *
* * * * * * * * * * * * * * * * * * * */
// SmE Protect
# Email recive the notification leave a blank if no need recive notification
$report_to = "";
// LOG FILE LEAVE A BLANK IF NO NEED LOGS REMEMBER CHMOD 666 in file to write permission
$_log_file="";
function smeprotect($a)
{
global $report_to ,$_log_file;
$bad_str = array("content-type:","charset=","mime-version:","multipart/mixed","bcc:","insert", "select", "update", "delete", "distinct", "having", "truncate", "replace","handler", "like", "as", "or", "procedure", "limit", "order by", "group by", "asc", "desc","../");
$suspect_found = false;
foreach($bad_str as $suspect)
{
if(eregi($suspect, strtolower($a)))
{
$ip = (empty($_SERVER['REMOTE_ADDR'])) ? 'empty' : $_SERVER['REMOTE_ADDR'];
$rf = (empty($_SERVER['HTTP_REFERER'])) ? 'empty' : $_SERVER['HTTP_REFERER'];
$ua = (empty($_SERVER['HTTP_USER_AGENT'])) ? 'empty' : $_SERVER['HTTP_USER_AGENT'];
$ru = (empty($_SERVER['REQUEST_URI'])) ? 'empty' : $_SERVER['REQUEST_URI'];
$rm = (empty($_SERVER['REQUEST_METHOD'])) ? 'empty' : $_SERVER['REQUEST_METHOD'];
$suspect_found = true;
$a = eregi_replace($suspect, " (>>><strong>".$suspect."</strong><<<) ", $a);
# IF EMAIL NOTIFICATION ARE ADDED
if(!empty($report_to))
{
@mail($report_to,"[ABUSE] NOTIFICATION @ " .$_SERVER['HTTP_HOST'] . " by " . $ip,"possible abuse @ " .$_SERVER['HTTP_HOST'] . " by " . $ip ." (" . date('d/m/Y H:i:s') . ")\n\n" ."IP/HOST : " . $ip . "\n\n" ."USER AGENT : " . $ua . "\n\n" ."REFERER : " . $rf . "\n\n" ."REQUEST URI : " . $ru . "\n\n" ."REQUEST METHOD : " . $rm . "\n\n" ."SUSPECT String: " . $a . "\n\n\n\n--","From:".$report_to."\nMessage-ID: <".date("YmdHis")."@".$_SERVER['SERVER_NAME'].">\nMime-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 7bit");
}
# IF LOG FILE ARE ADDED
if(!empty($_log_file))
{
if (is_writable($_log_file))
{
$fp = fopen("$_log_file","a");
$string = "".date('d/m/Y H:i:s')."|$ip|$rf|$ua|$ru|$rm|$a\n";
// being transformed into a newline
fwrite($fp, $string); // will proccess /n as newline ...
fclose($fp);
}
}
die("Script processing cancelled: string ".$a." contains text portions that are potentially dangerous to this server. Please use your browser's back-button to return to the previous page .</p>Your IP :<strong> ".$ip." </strong>are logged for security reason !");
}
}
}
foreach ($_GET as $value)
{
smeprotect($value);
}
foreach ($_POST as $value)
{
smeprotect($value);
}
?>