PHP - Problema con el SPAM, existiendo una validación para que no se envie

 
Vista:
Imágen de perfil de Jacinto

Problema con el SPAM, existiendo una validación para que no se envie

Publicado por Jacinto (40 intervenciones) el 04/08/2014 22:02:33
Muy buenas acudo a vosotros por un problemilla con el dichoso SPAM.
En los formularios de la página tengo un input que si lo rellenan por ejemplo un bot no lo envia a la bbdd, pero por algun motivo que desconozco se lo saltan solo en alguno de los formularios, es extraño ya que todos usan el mismo php para enviar la información a la bbdd.
Este es el campo que si se rellena no envia nada.
1
<input type="hidden" name="verificacion" />
Y este el php que lo valida.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
 include("../conexion.php");
if ($_POST['verificacion'] != ""){
	 // Es un SPAMbot
    exit();
 }
 else{
 	$inser1="INSERT INTO tblcomentario (ip, fecha, co_categoria, co_seccion, co_pagina, co_link, co_nombre, co_mail, co_web, co_comentario, votes, total)
        VALUES ('{$_POST['ip']}','{$_POST['fecha']}', '{$_POST['categoria']}', '{$_POST['seccion']}','{$_POST['subseccion']}','{$_POST['link']}','{$_POST['nombre']}','{$_POST['mail']}','{$_POST['web']}','{$_POST['msg']}', '{$_POST['radio_03']}','{$_POST['total']}')";
 		$insertar=mysql_query($inser1,$conexion);
 }
		if (mysql_errno($conexion))
		{
			echo "No se pudo insertar los datos en la tabla. Error" .mysql_errno() ." - ".mysql_error();
			mysql_close($conexion);
		}	else{
			$conexion;
			}
 
?>
Se que esta forma de evitar el spam es basica, pero hasta ahora estaba funcionando con todas las páginas.
Alguien podria aconsejarme que hacer?
Gracias por vuestro tiempo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Salvador

Problema con el SPAM, existiendo una validación para que no se envie

Publicado por Salvador (125 intervenciones) el 04/08/2014 23:15:09
Porque estas enviando como hidden la verificacion? al hacer esto no le das chance al usuario de que cambie valores,,,

no deberias hacerle una pregunta al usuario o algo para que valide ?
cual es la suma de 2 + 2 ?

if verificacion = 4 then no es es spam, else, spam


Cuando tu realizas una verificaciones, deberias comprobar si lo que solicitaste es lo que te mandan, porque de la forma en que lo estas haciendo, facilmente el robot podria estar enviado un $_POST['verificacion'] = 'algo' y por eso no estas controlando el spam y no es la idea.

si insistes en utilizar este codigo, la comprobacion la estas haciendo al revez,,, si verificacion es diferente de nada, entonces spam, de lo contrario no es spam,,, esta al revez.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jacinto

Problema con el SPAM, existiendo una validación para que no se envie

Publicado por Jacinto (40 intervenciones) el 06/08/2014 19:06:43
Igual no me explique del todo bien. Este campo esta oculto por que el usuario no debe de rellenarlo.
Cuando se rellena es cuando en teoria no se envia a la bbdd la información.
Aunque tampoco es mala tí idea ya que lo vi en algunas páginas, pero para poder usar esto deberia de ser una frase aleatoria ya que si no igual lo acabarian haciendo, no?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Problema con el SPAM, existiendo una validación para que no se envie

Publicado por xve (6935 intervenciones) el 05/08/2014 09:09:29
Hola Jacinto, últimamente me he encontrado algunos robots, un poco mas sofisticados, ya que en vez de navegar digamos por consola, es decir descargarse la pagina web y modificar los datos del formulario y enviarlos, empiezan a navegar como si fuera una persona, es decir, abren la pagina web en un navegador, y rellenan los datos de los formularios como haría una persona.

No se si sera este el problema, o es un usuario que lo hace manualmente.

Que tipo de contenido te añaden?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jacinto

Problema con el SPAM, existiendo una validación para que no se envie

Publicado por Jacinto (40 intervenciones) el 05/08/2014 17:36:08
el contenido es publicidad sobre temas como viagra, links a otras paginas de venta. todo en ingles. Lo que si que casi siempre se repiten las IP.
Estuve viendo como poder hacer en php un pequeño codigo para bloquear dichas IPs pero no fui capaz de hacerlo funcionar.
Un saludo y gracias por la respuesta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Problema con el SPAM, existiendo una validación para que no se envie

Publicado por xve (6935 intervenciones) el 05/08/2014 21:14:26
Para bloquear por IP's puedes hacer una función sencilla que te diga si ese mensaje se puede publicar o no... algo así:

1
2
3
4
5
6
7
8
9
10
<?php
function bloquearIP()
{
	$ipsloquear=array("190.125.12.145", "10.25.25.26");
 
	if(in_array($_SERVER["REMOTE_ADDR"],$ipsloquear))
		return true;
	return false;
}
?>

Antes de guardar los datos en la base de datos, puedes ejecutar:
1
2
3
4
5
6
if(bloquearIP())
{
    No guardo los datos
}else{
    Si guardo los datos
}

Espero que te sirva... coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jacinto

Problema con el SPAM, existiendo una validación para que no se envie

Publicado por Jacinto (40 intervenciones) el 06/08/2014 19:03:27
Muchas gracias de verdad. Voy a probarlo a ver si con un poco de suerte funciona.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar