Bienvenido a datoweb.com!! En este foro podrás encontrar ayuda sobre diseño y desarrollo web en general. Si quieres formar parte de esta comunidad para pedir ayuda o colaborar ayudando a otros usuarios del foro solo tienes que registrarte desde el siguiente enlace: Registrarse en el Foro

Problema de inserción automática

hola a todos, bueno como ya saben, mi web de mascotas, desde hace unos dias, se me añaden mascotas a traves de un tipo bot, cada pocos min se agrega alguna...
de este tipo

he metido una captcha en el formulario de agregar mascotas, pero aun asi se añaden....

alguna idea que mas puedo hacer?
Editado
0
Puntos
1532
Visitas
13
Resp
Por zapikero hace 91 meses
Avanzado Sitio web
Respuesta #1
hola tenes que ver en tu configuracion de httaccses
hay codigos de bloquear bots
y tambien usa ronots.txt
0
Puntos
Por pablo hace 91 meses
Experto
Respuesta #2
Vale. En httaccess tengo lo básico para url amigables.
Sábes por donde tirar ahí?
0
Puntos
Por zapikero hace 91 meses
Avanzado Sitio web
Respuesta #3
en el .htaccses
<Limit GET POST PUT>
order allow,deny
allow from all
deny from 123.456.789
</LIMIT>
RewriteCond %{HTTP_USER_AGENT} ^(turingos|turnitinbot|urly.?warning|vacuum|vci|voideye|whacker) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(wget|widow|wisenutbot|wwwoffle|xaldon|xenu|zeus|zyborg|anonymouse) [NC,OR]
# STARTS WITH WEB
RewriteCond %{HTTP_USER_AGENT} ^web(zip|emaile|enhancer|fetch|go.?is|auto|bandit|clip|copier|master|reaper|sauger|site.?quester|whack) [NC,OR]
# ANYWHERE IN UA — GREEDY REGEX
RewriteCond %{HTTP_USER_AGENT} ^.*(craftbot|TwengaBot|download|extract|stripper|sucker|ninja|clshttp|webspider|leacher|collector|grabber|webpictures|ia_archiver-web.archive.org).*$ [NC]
# ISSUE 403 / SERVE ERRORDOCUMENT
RewriteRule . – [F,L]
deny from 216.120.143.126

#
# robots.txt
#

User-agent: Orthogaffe
Disallow: /

User-agent: UbiCrawler
Disallow: /

User-agent: DOC
Disallow: /

User-agent: Zao
Disallow: /

User-agent: sitecheck.internetseer.com
Disallow: /

User-agent: Zealbot
Disallow: /

User-agent: MSIECrawler
Disallow: /

User-agent: SiteSnagger
Disallow: /

User-agent: WebStripper
Disallow: /

User-agent: WebCopier
Disallow: /

User-agent: Fetch
Disallow: /

User-agent: Offline Explorer
Disallow: /

User-agent: Teleport
Disallow: /

User-agent: TeleportPro
Disallow: /

User-agent: WebZIP
Disallow: /

User-agent: linko
Disallow: /

User-agent: HTTrack
Disallow: /

User-agent: Microsoft.URL.Control
Disallow: /

User-agent: Xenu
Disallow: /

User-agent: larbin
Disallow: /

User-agent: libwww
Disallow: /

User-agent: ZyBORG
Disallow: /

User-agent: Download Ninja
Disallow: /

User-agent: wget
Disallow: /

User-agent: grub-client
Disallow: /

User-agent: k2spider
Disallow: /

User-agent: NPBot
Disallow: /

User-agent: WebReaper
Disallow: /
1
Puntos
Por pablo hace 91 meses
Experto
Respuesta #4
Gracias Pablo! voy a probar y ya ire comentando a ver que tal :)
0
Puntos
Por zapikero hace 91 meses
Avanzado Sitio web
Respuesta #5
nada, puesto en practica y nada, en 20 minutos 3 mascotas añadidas....

como comente, meti captcha pero aun asi... insertan... no se si utilizara directamente el insert o que... puede ser por ahi donde inserte?
0
Puntos
Por zapikero hace 91 meses
Avanzado Sitio web
Respuesta #6
pego mi insert por si acaso se puede hacer algo por ahi
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  $insertSQL = sprintf("INSERT INTO animales (nombre, estado, raza, tamano, categoria, edad, sexo, salud, color, esterilizado, foto, foto2, foto3, foto4, foto5, descripcion, contacto, telefono, email, ciudad, envio) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
                       GetSQLValueString($_POST['nombre'], "text"),
                       GetSQLValueString($_POST['estado'], "text"),
                       GetSQLValueString($_POST['raza'], "text"),
                       GetSQLValueString($_POST['tamano'], "text"),
                       GetSQLValueString($_POST['categoria'], "text"),
                       GetSQLValueString($_POST['edad'], "text"),
                       GetSQLValueString($_POST['sexo'], "text"),
                       GetSQLValueString($_POST['salud'], "text"),
                       GetSQLValueString($_POST['color'], "text"),
                       GetSQLValueString($_POST['esterilizado'], "text"),
                       GetSQLValueString($_POST['foto'], "text"),
                       GetSQLValueString($_POST['foto2'], "text"),
                       GetSQLValueString($_POST['foto3'], "text"),
                       GetSQLValueString($_POST['foto4'], "text"),
                       GetSQLValueString($_POST['foto5'], "text"),
                       GetSQLValueString($_POST['descripcion'], "text"),
                       GetSQLValueString($_POST['contacto'], "text"),
                       GetSQLValueString($_POST['telefono'], "text"),
                       GetSQLValueString($_POST['email'], "text"),
                       GetSQLValueString($_POST['ciudad'], "text"),
                       GetSQLValueString($_POST['envio'], "text"));

  mysql_select_db($database_mundo, $mundo);
  $Result1 = mysql_query($insertSQL, $mundo) or die(mysql_error());

  $insertGoTo = "envio-realizado.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}
?>
0
Puntos
Por zapikero hace 91 meses
Avanzado Sitio web
Respuesta #7
MM
y trata de hecarlos de la web mediante httaccsess con el ip
fijate si tambien los usuarios no posten si no estan registrados.

0
Puntos
Por pablo hace 91 meses
Experto
Respuesta #8
No tengo aun hecho registro de usuarios...

Como puedo echarles?
0
Puntos
Por zapikero hace 91 meses
Avanzado Sitio web
Respuesta #9
en en panel de administrator de tu host, existe una herramienta que esta revizando constantemente el trafico de tu sitio web, fijate que el analisis lance nombre de los bots que entran y salen de tu sitio, por lo general todos se quedan, si esta informacion no te aparece, ponte en contacto con el servicio al cliente de tu host, y ellos deberna orientarte un poco mas, al tener el nombre los bot, agregalos a tu archivo htaccess Y/O a tu robots.txt, si los nombres ya figuran en el o los documentos, entonces deberas verificar que el archivo robots.txt este en el lugar correcto, asi como reviza tanto el codigo de este archivo Y/O el de htaccess, esto para evitar que haya algun error que impida el buen funcionamiento...

tambien impleta seguridad en cuanto que usuarios pueden y no pueden subir post, comentar, etc... esto lo puedes hacer mediante el camino del rango, pero para esto deberas hacer el registro de usuarios, esto es una pieza clave, quizas no quieres que los usuarios se puedan registrar, entonces crea una tabla con usuarios y agregas tus datos, implementando el rango claro, pero es recomendable que hagas una pagina de registro y tambien poner una medida de seguridad.
0
Puntos
Por Jesxs hace 91 meses
Desactivado
Respuesta #10
me falto, tambien tienes que estar seguro que sea un bot el que este agregando los post, quizas no sea un bot, puede ser tambien alguna persona que te esta haciendo una mala pasada, por eso serciorate bien de que es el problema, asi podras corregirlo sin mayor problema.
0
Puntos
Por Jesxs hace 91 meses
Desactivado
Respuesta #11
Gracias jesxs! Yo creo que tiene que ser un bot por que es constante...

Are lo q me comentas y te iré diciendo :)
0
Puntos
Por zapikero hace 91 meses
Avanzado Sitio web
Respuesta #12
Al final el problema persiste... Así que estoy creando sistema de login para así bloquearlo.

Y con esto quedará solucionado :)
1
Puntos
Por zapikero hace 89 meses
Avanzado Sitio web
Respuesta #13
eso no es un bot, lo que pasa es que solo estas validando el campo MM_insert es decir puedes enviar el formulario completamente vacio solo tienes que dar clic en agregar y listo! ya tienes un post vacio insertado

trata de validar por javascript y php veras como no te entran mas nada, en el fichero que inserta despues de la conexión pon algo como esto:
if(!isset($_POST['nombre']) || $_POST['nombre']=='' || $_POST['estado']=='') exit;
pero con todos los campos $_POST que estas enviando que no son pocos y ademas pon validación javascript, aqui te lo explican de pu** madre https://www.youtube.com/watch?v=U9R-PUhwv_0&list=PLn6DZNSAhHfttuiGIbvEdyo_8OEWC6sAZ
1
Puntos
Por alber hace 89 meses
Administrador
Compartir en facebook
Compartir en twitter
Compartir
Para comentar Inicia sesión o Registrate