Tengo un pequeño gran problema, tengo un servidor propio y tengo un script en php que captura las variables que me mandan los formularios pero por lo que me ha dicho mi administrador no es muy seguro, de hecho creo que ha habido un ataque de spammers.
me gustaria que los mas entendidos en seguridad me ayudasen a mejorar el script y si no es posible mejorarlo pues si me pueden indicar posibles soluciones o sitios donde encontrarlas se los agradeceria mucho
el codigo es el siguiente
Código PHP:
<?
//Seguridad (para q no lo manden desde otros websites)
//Buscar dominio
echo "REFERER=".$_SERVER['HTTP_REFERER']."<br>";
$ref = $_SERVER['HTTP_REFERER'];
$tmp = (substr(stristr($ref, '//'),2));
$pos = strpos($tmp,'/');
$tmp = substr($tmp,0,$pos);
echo "TMP=".$tmp."<br>";
//Comparar dominio
if ($tmp!="http://www.dominio.com")
{
echo "PROHIBIDO!!";
exit;
}
//Recogida de var's
$recipient = $_POST['recipient'];
$subject = $_POST['subject'];
$redirect = $_POST['redirect'];
$nombre = $_POST['nombre'];
// Create the message file based on the posted variables
$msg="============ Envio de Formulario ============\r\n\r\n";
reset ($HTTP_POST_VARS);
while (list ($key, $val) = each ($HTTP_POST_VARS))
{
if ( ($key!="recipient") && ($key!="subject")&& ($key!="redirect") )
{
$msg.= "$key: $val\r\n";
}
}
$From="From: $nombre <$email>\n";
$mailok=mail("$recipient", "$subject", $msg, $From);
if ($redirect) {
header("Location: $redirect");
} else {
print "The data has been submitted. Thank You.";
}
?>