Foros del Web » Programando para Internet » PHP »

problemas de spam en mi form

Estas en el tema de problemas de spam en mi form en el foro de PHP en Foros del Web. hola amigo tengo un sitio de avisos sencillo en donde solo debe poner tu aviso y este se publica va muy bien pero anoche a ...
  #1 (permalink)  
Antiguo 12/07/2011, 06:48
 
Fecha de Ingreso: febrero-2009
Mensajes: 489
Antigüedad: 15 años, 2 meses
Puntos: 8
problemas de spam en mi form

hola amigo tengo un sitio de avisos sencillo en donde solo debe poner tu aviso y este se publica va muy bien pero anoche a empezado apareces una serie de avisos en ingles y cada rato los elimino y vuelven a aparecer e incluso he deshabilitado para publicar y aun asi se publican que debo hacer para evitar eso, no se quien sea la persona o codigo que haga esto pero me esta jodiendo espero que me hechan la mano
__________________
sitios
www.avisoya.com
www.yavendi.com
  #2 (permalink)  
Antiguo 12/07/2011, 07:03
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: problemas de spam en mi form

lo que no entiendo es como si está deshabilitado siguen publicando.
__________________
aconcaguaestudio.com
  #3 (permalink)  
Antiguo 12/07/2011, 07:05
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: problemas de spam en mi form

Sin ver el código que utilizas es imposible que adivinemos eso.
  #4 (permalink)  
Antiguo 12/07/2011, 07:06
 
Fecha de Ingreso: febrero-2009
Mensajes: 489
Antigüedad: 15 años, 2 meses
Puntos: 8
Respuesta: problemas de spam en mi form

si se veo q tengo dos form uno en el index y el otro en la categoria de ciudades ahora están deshabitados pero aun asi se siguen publicando los avisos en ingles la web en cuesntaion es avisoya com te agradecería tu ayuda



Cita:
Iniciado por GatorV Ver Mensaje
Sin ver el código que utilizas es imposible que adivinemos eso.
que parte del codigo te muestro? en si es un simple formulario que va por POST a otra web en donde hace el insert a la bb
gracias por tu tiempo
__________________
sitios
www.avisoya.com
www.yavendi.com
  #5 (permalink)  
Antiguo 12/07/2011, 07:17
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: problemas de spam en mi form

pon el código de tu procesamiento del formulario
dices que va por POST a otra web ????
__________________
aconcaguaestudio.com
  #6 (permalink)  
Antiguo 12/07/2011, 07:20
 
Fecha de Ingreso: febrero-2009
Mensajes: 489
Antigüedad: 15 años, 2 meses
Puntos: 8
Respuesta: problemas de spam en mi form

Código PHP:
Ver original
  1. <form  action="publicar.php" method="post" enctype="multipart/form-data" name="form" class="general" id="form" style="" onsubmit="return checar();">
  2.         <div id="charLeft"></div>
  3.       <h2>Anuncia ya, Deja tu  ubicacion detalle y dato de contacto en 360 caracteres :)</h2>
  4.       <p>&nbsp;</p>
  5.       <table width="300" border="0" align="center">
  6.   <tr>
  7.     <td width="148"><input name="opcion" type="radio" id="opcion_0" onclick="cambiar_opcion(this)" value="solo texto" checked="checked" />
  8.     Solo Texto</td>
  9.     <td width="136"> <input type="radio" name="opcion" onclick="cambiar_opcion(this)" value="con imagen" id="opcion_1" />
  10.       Con Imagen</td>
  11.   </tr>
  12. </table>
  13.       <span id="sprytextarea1">
  14.       <label for="clasificados"></label>
  15.       <textarea name="clasificado" id="clasificado" cols="20" rows="8">Deshabilitado Temporalmente</textarea>
  16.       <span id="countsprytextarea1">&nbsp;</span><span class="textareaMaxCharsMsg">Exceeded maximum number of characters.</span></span>
  17.      
  18.       <span id="spryselect1">
  19.   <label for="categoria"></label>
  20.   <select name="categoria" id="categoria">
  21.     <option value="">Selecciona tu categoria</option>
  22.     <?php
  23. do {  
  24. ?>
  25.     <option value="<?php echo $row_categorias['categoria']?>"><?php echo $row_categorias['categoria']?></option>
  26.     <?php
  27. } while ($row_categorias = mysql_fetch_assoc($categorias));
  28.   $rows = mysql_num_rows($categorias);
  29.   if($rows > 0) {
  30.       mysql_data_seek($categorias, 0);
  31.       $row_categorias = mysql_fetch_assoc($categorias);
  32.   }
  33. ?>
  34.   </select>
  35.   <span class="selectRequiredMsg">Please select an item.</span></span>
  36.    
  37.       <input style="display:none;" id="imagen" name="imagen" type="file">      
  38.       <input type="submit" value="Publicar Anuncio">
  39.   </form>

ese es el codigo del form

actualmente el action="publicar.php" esta en blanco en ves de publicar.php
__________________
sitios
www.avisoya.com
www.yavendi.com
  #7 (permalink)  
Antiguo 12/07/2011, 07:22
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: problemas de spam en mi form

Es mejor que dentro de publicar.php pongas un die() al inicio del script ya que aunque no le pongas un action al form, por lo general los bots ya saben a que script apuntar.

Para solucionar lo que quieres debes de implementar un código CAPTCHA y también evitar que te hagan posts desde webs externas y que solo lo hagan desde una interna, esto se le conoce como validacion CSRF.

Saludos.
  #8 (permalink)  
Antiguo 12/07/2011, 07:33
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: problemas de spam en mi form

GatorV a ver si entiendo, si pone un exit() en el archivo que procesa el formulario, como lo va a procesar si lo pone al principio ?
y si lo pone al final pues no podrá hacer el redireccionamiento
__________________
aconcaguaestudio.com
  #9 (permalink)  
Antiguo 12/07/2011, 07:35
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: problemas de spam en mi form

Es para "apagar" el publicar temporalmente, simplemente por quitar el action del form no va a ayudar en nada.
  #10 (permalink)  
Antiguo 12/07/2011, 07:37
 
Fecha de Ingreso: febrero-2009
Mensajes: 489
Antigüedad: 15 años, 2 meses
Puntos: 8
Respuesta: problemas de spam en mi form

fijate en mi publicar como lo ves que le faltaria en donde iria lo del die()


Código PHP:
Ver original
  1. <?
  2. //Conexion con la base
  3. $conexion= mysql_connect("localhost","userr","pass");
  4.  
  5. //selección de la base de datos con la que vamos a trabajar
  6. mysql_select_db("nombrebd");
  7.  
  8. //variable clasificado
  9. $nombreclasi = $_POST["clasificado"];
  10.  
  11. $nombreclasi=str_replace(array('(','\'','´','{','}','+','´','*','¨','[',']','%','-','ç','&','/','\ ','%','\$','#','"','!','?','¡',':',';',')'),'',$nombreclasi);
  12.  
  13. //variable imagen
  14. $nombre_archivo = $_FILES["imagen"]["name"];  
  15. $tipo_archivo = $_FILES["imagen"]["type"];  
  16. $tamano_archivo = $_FILES["imagen"]["size"];
  17.  
  18. //corto el texto hasta 50
  19. $nombreclasi2 = $nombreclasi;
  20.  
  21. $nombreclasi2= substr(str_replace(" ", "-", $nombreclasi2), 0,50);
  22. $categoria = $_POST["categoria"];
  23.  
  24. //Fecha actual
  25. $fecha = date("Y-m-d H:i:s");
  26. $fecha1 = date("d");
  27.  
  28. //Fecha vencimiento
  29. $fecha_exp = date('Y-m-d H:i:s', strtotime('+3 month' . $fecha));
  30.  
  31.  
  32.  
  33. //compruebo si las características del archivo son las que deseo  
  34.  
  35. if (!empty($_FILES['imagen']['name'])) {
  36.     if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg") || strpos($tipo_archivo, "png")) && (    $tamano_archivo < 20000000)))
  37. {  
  38.     echo "La extension o el tamano de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de 2 Mb maximo.</td></tr></table>";
  39. ?>
  40.           <script language="JavaScript" type="text/javascript">
  41.         setTimeout("url()",3000);
  42.         function url()
  43.         {
  44.         window.history.back();
  45.         }
  46.             </script>
  47.           <?    
  48. }}else {//Ejecucion de la sentencia SQL
  49.  
  50. $sql = "INSERT INTO clasificados (clasificado,nombreclasi,fecha,fecha_exp,categoria,imagen) VALUES ('$nombreclasi','$nombreclasi2','$fecha','$fecha_exp','$categoria','$nom_img')";
  51.  
  52.  if(mysql_query($sql,$conexion)){
  53. //obtenemos el ID del ultimo registro y hacer header
  54. $id_clasi = mysql_insert_id();
  55.  
  56.  
  57. header("location:".$nombreclasi2."_".$id_clasi);
  58. }else{
  59. echo 'error en la consulta: '.mysql_error();
  60. }}
  61.  
  62.     $nom_img = "avisoya.com-".$fecha1.$nombre_archivo;  
  63.    
  64.      
  65.     $directorio = 'imgcl';
  66.  
  67.     if (move_uploaded_file($HTTP_POST_FILES['imagen']['tmp_name'],$directorio . "/" . $nom_img))
  68.     {  
  69.        
  70. //Ejecucion de la sentencia SQL
  71.  
  72. $sql = "INSERT INTO clasificados (clasificado,nombreclasi,fecha,fecha_exp,categoria,imagen) VALUES ('$nombreclasi','$nombreclasi2','$fecha','$fecha_exp','$categoria','$nom_img')";
  73.  
  74.  if(mysql_query($sql,$conexion)){
  75. //obtenemos el ID del ultimo registro y hacer header
  76. $id_clasi = mysql_insert_id();
  77.  
  78.  
  79. header("location:".$nombreclasi2."_".$id_clasi);
  80. }else{
  81. echo 'error en la consulta: '.mysql_error();
  82. }
  83.  
  84. }
  85.  
  86.  
  87. ?>

he acado de eliminar del hosting el archivo de publicar.php haber si aun asi publican avisos basuras, vamos haber si aun sigue en este rato ya he borrado como 20
__________________
sitios
www.avisoya.com
www.yavendi.com
  #11 (permalink)  
Antiguo 12/07/2011, 07:39
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: problemas de spam en mi form

ahhh, era para pararlo ahora, no es que se tenga que hacer como medida de seguridad
que despistado que soy...

como medida de seguridad siempre hago lo que dice GatorV, el captcha, nuca había visto lo de validacion CSRF, algo a tener en cuenta a partir de ahora
__________________
aconcaguaestudio.com
  #12 (permalink)  
Antiguo 12/07/2011, 07:39
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: problemas de spam en mi form

lo puedes poner al inicio del archivo
__________________
aconcaguaestudio.com
  #13 (permalink)  
Antiguo 12/07/2011, 07:43
 
Fecha de Ingreso: febrero-2009
Mensajes: 489
Antigüedad: 15 años, 2 meses
Puntos: 8
Respuesta: problemas de spam en mi form

iviamontes como seria entonces ? que debo poner en mi codigo de publicar
gracias por el tiempo
__________________
sitios
www.avisoya.com
www.yavendi.com
  #14 (permalink)  
Antiguo 12/07/2011, 07:48
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: problemas de spam en mi form

Código PHP:
<?php

die();

//Conexion con la base
$conexionmysql_connect("localhost","userr","pass"); 
*
//selección de la base de datos con la que vamos a trabajar 
mysql_select_db("nombrebd"); 
*
//variable clasificado 
$nombreclasi $_POST["clasificado"]; 
*
$nombreclasi=str_replace(array('(','\'','´','{','}','+','´','*','¨','[',']','%','-','ç','&','/','\ ','%','\$','#','"','!','?','¡',':',';',')'),'',$nombreclasi);
*
//variable imagen
$nombre_archivo $_FILES["imagen"]["name"]; *
$tipo_archivo $_FILES["imagen"]["type"]; *
$tamano_archivo $_FILES["imagen"]["size"];
*
//corto el texto hasta 50
$nombreclasi2 $nombreclasi
*
$nombreclasi2substr(str_replace(" ""-"$nombreclasi2), 0,50);
$categoria $_POST["categoria"];
*
//Fecha actual
$fecha date("Y-m-d H:i:s");
$fecha1 date("d");
*
//Fecha vencimiento
$fecha_exp date('Y-m-d H:i:s'strtotime('+3 month' $fecha));
*
*
*
//compruebo si las características del archivo son las que deseo *
*
if (!empty(
$_FILES['imagen']['name'])) {
* * if (!((
strpos($tipo_archivo"gif") || strpos($tipo_archivo"jpeg") || strpos($tipo_archivo"png")) && ( * *$tamano_archivo 20000000))) 
{ *
* * echo 
"La extension o el tamano de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de 2 Mb maximo.</td></tr></table>"
?>
* * * * * <script language="JavaScript" type="text/javascript"> 
* * * * setTimeout("url()",3000); 
* * * * function url() 
* * * * { 
* * * * window.history.back(); 
* * * * } 
* * * * * * </script>
* * * * * <? * * 
}}else {
//Ejecucion de la sentencia SQL
*
$sql "INSERT INTO clasificados (clasificado,nombreclasi,fecha,fecha_exp,categoria,imagen) VALUES ('$nombreclasi','$nombreclasi2','$fecha','$fecha_exp','$categoria','$nom_img')";
*
*if(
mysql_query($sql,$conexion)){ 
//obtenemos el ID del ultimo registro y hacer header 
$id_clasi mysql_insert_id();
*
*
header("location:".$nombreclasi2."_".$id_clasi); 
}else{
echo 
'error en la consulta: '.mysql_error();
}}
*
* * 
$nom_img "avisoya.com-".$fecha1.$nombre_archivo; *
* * 
* * *
* * 
$directorio 'imgcl'
*
* * if (
move_uploaded_file($HTTP_POST_FILES['imagen']['tmp_name'],$directorio "/" $nom_img)) 
* * { *
* * * * 
//Ejecucion de la sentencia SQL
*
$sql "INSERT INTO clasificados (clasificado,nombreclasi,fecha,fecha_exp,categoria,imagen) VALUES ('$nombreclasi','$nombreclasi2','$fecha','$fecha_exp','$categoria','$nom_img')";
*
*if(
mysql_query($sql,$conexion)){ 
//obtenemos el ID del ultimo registro y hacer header 
$id_clasi mysql_insert_id();
*
*
header("location:".$nombreclasi2."_".$id_clasi); 
}else{
echo 
'error en la consulta: '.mysql_error();
}
*
}
*
*
?>

recuerda que esto es solo para deshabilitar el formulario, no lo puedes dejar así después, tu seguridad estaría en lo que te dice GatorV
__________________
aconcaguaestudio.com
  #15 (permalink)  
Antiguo 12/07/2011, 10:27
 
Fecha de Ingreso: febrero-2009
Mensajes: 489
Antigüedad: 15 años, 2 meses
Puntos: 8
Respuesta: problemas de spam en mi form

q captcha recomiendan
http://craftyman.net/captcha-con-php/

busco uno sencillo q no ocupe demasiado espacio
__________________
sitios
www.avisoya.com
www.yavendi.com
  #16 (permalink)  
Antiguo 12/07/2011, 10:30
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: problemas de spam en mi form

Una de las mejores implementaciones es reCaptcha.
  #17 (permalink)  
Antiguo 12/07/2011, 10:34
 
Fecha de Ingreso: febrero-2009
Mensajes: 489
Antigüedad: 15 años, 2 meses
Puntos: 8
Respuesta: problemas de spam en mi form

GatorV y a ese se le puede disminuir el tamaño ps es muy grande?
gracias por tu ayuda
__________________
sitios
www.avisoya.com
www.yavendi.com
  #18 (permalink)  
Antiguo 12/07/2011, 10:38
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: problemas de spam en mi form

¿A que te refieres con el tamaño? Es un servicio externo...
  #19 (permalink)  
Antiguo 12/07/2011, 10:46
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: problemas de spam en mi form

Hola:

Verás, yo tengo un captcha casero pero funciona bien, e incluso así me han spameado mi sistema de comentarios (ahora mismo lo hacen a otra de mis páginas), y tuve que ampliar el sistema con una activación por email.
Obligas a que pongan un email válido, pero para que se muestre el mensaje solo vale que miren el correo y accedan a una página de activación (aquí lo comento: Ponga comentarios en su web. Otra opción que acabo de implementar es activar el mensaje por tareas administrativas del webmaster (yo); que no es tan inmediato pero no obligas a proporcionar datos que puede que no quieran dar... pero debes crear esa página de "tareas administrativas"; por ejemplo con un simple loguin que cree una simple variable de sesión del tipo $_SESSION["admin"] = "yo mismo"...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #20 (permalink)  
Antiguo 12/07/2011, 11:07
 
Fecha de Ingreso: febrero-2009
Mensajes: 489
Antigüedad: 15 años, 2 meses
Puntos: 8
Respuesta: problemas de spam en mi form

GatorV disculpa yo hablo del aspecto visial del reCaptcha ps mi idea es q se vea el desiño algo minimalista y ps esta recaptcha veo q es algo grande de unos 300px x 200px apro yo busco uno mas peqño para me encaje de 200px a 150px este reCaptcha de puede editar el tamaño y diseño?

gracias por tu tiempo

oye otra duda hay alguna forma de poder detectar quien o de donde es el spam q generaron en mi web?
__________________
sitios
www.avisoya.com
www.yavendi.com
  #21 (permalink)  
Antiguo 12/07/2011, 11:14
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: problemas de spam en mi form

Pues guarda la IP para que sepas de donde viene el spam que te insertaron, y asi también puedes discriminar y evitar aunque no es una buena protección.

Etiquetas: spam, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:45.