[Resuelto] reCAPTCHA V2 funciona..pero se me cuelan

Iniciado por Morgan007, 16 Noviembre 2018, 06:45 AM

0 Miembros y 2 Visitantes están viendo este tema.

Morgan007

Hola foreros:
He estado buscando varios hilos y salvo error por mi parte el tema que quiero comentarios no lo he encontrado.


Como tenía decenas de mensajes diarias de los sistemas automatizados de Spam, coloqué un reCpacha de los de "No SOY UN ROBOT" usando la opción que facilita google gratuitamente, enconcreto que es la V2.

Los mensajes de Spam han caido en picado, pero sigue entrando alguno que otro dado que son robots potentes.

Quería saber:
-Habiendo instalado correctamente la "función básica" esto es...

en el Head
Código (html5) [Seleccionar]
<script src='https://www.google.com/recaptcha/api.js'></script>
en el htmk de contacto
Código (html5) [Seleccionar]
<div align="center"> <div class="g-recaptcha" data-sitekey="xxxxxxxxxxxxxxxxxxxxxxxxx" data-theme="dark"></div>
y en el php

Código (php) [Seleccionar]
if(isset($_POST['g-recaptcha-response']) && $_POST['g-recaptcha-response']) {
var_dump ($_POST) ;
$secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$ip = $_SERVER['REMOTE_ADDR'];
$captcha = $_POST['g-recaptcha-response']. "dsa";
$rsp = file_get_contents ("https://www.google.com/recaptcha/api/siteverify?secret=$response&captcha=captcha&remote ip$ip");
var_dump ($rsp) ;
$arr = json_decode ($rsp, TRUE)
if ($arr ['success']){
echo 'Done";
}else{
echo 'SPam";
}
}


¿Puedo hacer alguna mejora "sencillita " de seguridad usando este código ? O debo pasar al V3 (del que no tengo ni idea )

Gracias por leerme




Mod: Obligatorio el uso de etiquetas GeSHi.

warcry.

puedes poner una pagina de transicion despues del captcha, en la que pida resolver una operacion matematica.

puedes implementarlo con un php, o con un simple javascript
HE SIDO BANEADO --- UN PLACER ---- SALUDOS

Morgan007

#2
Hola warcry:
Cita de: warcry. en 16 Noviembre 2018, 09:28 AM
puedes poner una pagina de transicion despues del captcha, en la que pida resolver una operacion matematica.

puedes implementarlo con un php, o con un simple javascript
Primero gracias por contestar.

No entiendo exactamente en qué  consiste  cómo hacerlo. Estoy buiscando ejemplos pero no sé si lo estoy haciendo bien y no encuentro cómo hacerlo.

¿Puedes copiarme un ejemplo para poder insertalrlo y probar?

Gracias





Te lo digo porque estoy usando esto https://www.esthersola.com/como-implementar-google-captcha-en-asp-clasico/

pero no me sale y nbo sé si el código es correcto o no es exactamente lo que me dices.

No es por ti... es por mis limitaciones "tecnicas" ara saber interpretar y detectar los errores en su caso..

Gracias




Mod: Prohibido hacer doble post. Usa el botón modificar.

warcry.

un ejemplo rapido con javascript

si tecleas 25 te manda a google, si no te sale un aviso de que el resultado no es correcto y no te deja continuar

<html>
<head>
<meta charset="UTF-8">
<script>
function comprobarClave(){
   
    clave = document.f1.clave.value


if (25 != clave) {
alert ("El resultado no es correcto");
return false;
}

if (25 == clave) {
return true;
}

}
</script>
</head>
<body>
<p style="text-align:center">Introduzca el resultado de la operacion para continuar</p>
</p>
<form style="text-align:center" name="f1" method="get" action="https://google.es">
<label><h5>cuanto es 5 x 5</h5></label>
<label><h5>RESULTADO</h5></label>
<input name="clave" type="text" size=20 />
<br><br/>
<input type="button" value="Aceptar" style="FONT-SIZE:16pt;" onclick=" if ( comprobarClave() == true ) document.f1.submit(); "/>
</form>
</body>
</html>
HE SIDO BANEADO --- UN PLACER ---- SALUDOS

Morgan007

Hola Warcry:
Cita de: warcry. en 20 Noviembre 2018, 17:15 PM
un ejemplo rapido con javascript

si tecleas 25 te manda a google, si no te sale un aviso de que el resultado no es correcto y no te deja continuar

<html>
<head>
<meta charset="UTF-8">
<script>
function comprobarClave(){
   
    clave = document.f1.clave.value


if (25 != clave) {
alert ("El resultado no es correcto");
return false;
}

if (25 == clave) {
return true;
}

}
</script>
</head>
<body>
<p style="text-align:center">Introduzca el resultado de la operacion para continuar</p>
</p>
<form style="text-align:center" name="f1" method="get" action="https://google.es">
<label><h5>cuanto es 5 x 5</h5></label>
<label><h5>RESULTADO</h5></label>
<input name="clave" type="text" size=20 />
<br><br/>
<input type="button" value="Aceptar" style="FONT-SIZE:16pt;" onclick=" if ( comprobarClave() == true ) document.f1.submit(); "/>
</form>
</body>
</html>

Ok, gracias.
Esto lo meto en el "contacto.html".. En el Head y Body..

¿En el PHP tendré que poner algo verdad?? :silbar:

warcry.

veo que estas muy pez, y asi no hay quien te pueda ayudar.

si un simple código html se te hace un mundo  :silbar:

a ver si soy capaz de explicarte el concepto.

tu tienes un index en el cual tienes un enlace a una pagina que se llama contacto.html, entiendo por tus comentarios que en esa pagina contacto.html tienes el captcha.

pues coges todo el código que te he puesto y lo pegas en un txt, le llamas transicion y le cambias la extensión de txt a html quedándote transicion.html y ese archivo html lo metes en la carpeta de tu servidor donde tienes el archivo contactos.html

en tu index cambias la ruta de tu enlace a contacto, para que apunte a transicion.html en vez de a contacto.html y en el código que te he dado donde pone https://google.es

Citar<form style="text-align:center" name="f1" method="get" action="https://google.es">

y pones

Citar<form style="text-align:center" name="f1" method="get" action="/contacto.html">

asi cuando algun bot siga el enlace de contacto, tiene que introducir la respuesta correcta antes de continuar.

cuando alguien introduce 25 y le da con el ratón a aceptar (el enter esta intencionadamente desactivado) es cuando esa pagina de transición le deriva a contacto.html para que rellene el formulario y el captcha.

no se si me he explicado, pero dado tu estado actual lo mas probable es que te suene a chino lo que te he puesto

por cierto esta web de transición no vale de nada, si tienes por ahi links externos que apuntan directamente a contacto ya que un boot que siga enlaces de los comentarios del youtube nunca va a ir a la web de transición, a no ser que a la web de transicion la llames contacto.html y a la que antes se llamaba contacto.html la llames por ejemplo contacto1.html
HE SIDO BANEADO --- UN PLACER ---- SALUDOS

Morgan007

#6
Hola de nuevo warcry:
Cita de: warcry. en 20 Noviembre 2018, 18:59 PM
veo que estas muy pez, y asi no hay quien te pueda ayudar.

si un simple código html se te hace un mundo  :silbar:
jajajaj  :laugh: :laugh: Disculpa... tras leer tu post... menos "pez· ya ... gracias  :laugh:

Cita de: warcry. en 20 Noviembre 2018, 18:59 PM
veo que estas muy pez, y asi no hay quien te pueda ayudar.

si un simple código html se te hace un mundo  :silbar:

a ver si soy capaz de explicarte el concepto.

tu tienes un index en el cual tienes un enlace a una pagina que se llama contacto.html, entiendo por tus comentarios que en esa pagina contacto.html tienes el captcha.

pues coges todo el código que te he puesto y lo pegas en un txt, le llamas transicion y le cambias la extensión de txt a html quedándote transicion.html y ese archivo html lo metes en la carpeta de tu servidor donde tienes el archivo contactos.html

en tu index cambias la ruta de tu enlace a contacto, para que apunte a transicion.html en vez de a contacto.html y en el código que te he dado donde pone https://google.es

y pones

asi cuando algun bot siga el enlace de contacto, tiene que introducir la respuesta correcta antes de continuar.

cuando alguien introduce 25 y le da con el ratón a aceptar (el enter esta intencionadamente desactivado) es cuando esa pagina de transición le deriva a contacto.html para que rellene el formulario y el captcha.

no se si me he explicado, pero dado tu estado actual lo mas probable es que te suene a chino lo que te he puesto

por cierto esta web de transición no vale de nada, si tienes por ahi links externos que apuntan directamente a contacto ya que un boot que siga enlaces de los comentarios del youtube nunca va a ir a la web de transición, a no ser que a la web de transicion la llames contacto.html y a la que antes se llamaba contacto.html la llames por ejemplo contacto1.html

Muy bien explicado, ahora te sigo.

Gracias por tus aportes..¡¡y por tu paciencia!!  ;-) ;-) ;-) ;-) ;-)




Cita de: warcry. en 20 Noviembre 2018, 18:59 PM
<form style="text-align:center" name="f1" method="get" action="https://google.es">

Hola warcry:
FENOMENAL SOLUCION  ;-) ;-)

lo he simplicficado en un "html"

He metido dentro de mi donde comienza mi formulario esto...


<a name="formulario_valido"></a>


Y en tu formulario
<form style="text-align:center" name="f1" method="get" action="#formulario_valido">

de esta forma... si suma 25.. pasa más abajo.. si no es correcto... te avisa...

Muy sencillo y creo que funcionará... a ver si los robots "se me cuelan"...

Gracias por tus consejos, tiempo y paciencia.

Espero sea de utilidad para otros foreros.

Saludos



Mod: Obligatorio el uso de etiquetas GeSHi.
Mod: Prohibido hacer doble post. Utiliza el botón modificar.

Morgan007

Hola Foreros:
Finalmente he usado la opción del forero warcry con dos html.
Cita de: warcry. en 20 Noviembre 2018, 18:59 PM
veo que estas muy pez, y asi no hay quien te pueda ayudar.

si un simple código html se te hace un mundo  :silbar:

a ver si soy capaz de explicarte el concepto.

tu tienes un index en el cual tienes un enlace a una pagina que se llama contacto.html, entiendo por tus comentarios que en esa pagina contacto.html tienes el captcha.

pues coges todo el código que te he puesto y lo pegas en un txt, le llamas transicion y le cambias la extensión de txt a html quedándote transicion.html y ese archivo html lo metes en la carpeta de tu servidor donde tienes el archivo contactos.html

en tu index cambias la ruta de tu enlace a contacto, para que apunte a transicion.html en vez de a contacto.html y en el código que te he dado donde pone https://google.es

y pones

asi cuando algun bot siga el enlace de contacto, tiene que introducir la respuesta correcta antes de continuar.

cuando alguien introduce 25 y le da con el ratón a aceptar (el enter esta intencionadamente desactivado) es cuando esa pagina de transición le deriva a contacto.html para que rellene el formulario y el captcha.

no se si me he explicado, pero dado tu estado actual lo mas probable es que te suene a chino lo que te he puesto

por cierto esta web de transición no vale de nada, si tienes por ahi links externos que apuntan directamente a contacto ya que un boot que siga enlaces de los comentarios del youtube nunca va a ir a la web de transición, a no ser que a la web de transicion la llames contacto.html y a la que antes se llamaba contacto.html la llames por ejemplo contacto1.html
Funciona perfectamente... Resultado: "0" Spam.

Espero sea últi para futuros usuarios y reitero mi agradecimiento por la paciencia y nivel de detalle de  warcry.

Saludos

Morgan007

Hola de nuevo:
Repesco este antiguo hilo porque recoje todo el contenido de lo que fue una solución pero que ahora vuelve a ser vulnerable.

Tras una larguísima temporada sin spam, llevo un par de semanas que se me cuela un robot que me envia diariamente un mensaje del formulario.

Se me ha ocurrido cambiar el valor de la pregunta de filtro a ver si eso funciona pero ¿se os ocure cómo solicionarlo ?

Saludos y gracias

warcry.

si solo se te cuela un robot, no es preocupante, seguramente cambiándole la pregunta lo dejes fuera.

Ten en cuenta que detrás de los robots también hay personas, tu código lo ha podido evaluar una persona y programar directamente una respuesta.

si fuera un robot mas elaborado capaz de descargar el código html, leerlo, interpretarlo, y sacar/probar la calve del código y verificar que es correcta y memorizarla, entonces tendrías que ir un paso mas allá y no utilizar javascript, tendrías que crear un formulario tipo login del foro, donde la respuesta no este contenida en el propio codigo sino que se pregunte mediante una petición al servidor.
HE SIDO BANEADO --- UN PLACER ---- SALUDOS