CAPTCHA
Esta función nos permite bloquear las peticiones que se hacen a nuestro sitio web por parte de bots o, dicho con otras palabras, garantizar que el tráfico recibido proviene de seres humanos.
Con este propósito en mente, los CAPTCHAs (Completely Automated Public Turing test to tell Computers and Humans Apart) consisten en pequeñas pruebas (desafíos) automatizadas, es decir, realizadas por una máquina y, en consecuencia, sin intervención humana, y que permiten discriminar cuándo el usuario es un ser humano y cuándo un programa automático (bot). Concretamente, la implementación de esta función se ha realizado basándose en la solución reCAPTCHA ofrecida por Google.
Esta función se invoca a través de nuestra cabecera TCDN-Command; así, debemos incluir el valor show-captcha. Concretamente, la sintaxis de la función es la siguiente: show-captcha[:<ttl>].
Internamente, cuando un usuario resuelve de manera satisfactoria el desafío presentado por el CAPTCHA, se asigna una cookie en su navegador llamada TCDN-Captcha-UID. Esta cookie permite identificar de manera inequívoca la sesión del usuario y, en consecuencia, evita que se le vuelva a requerir una y otra vez que supere el desafío del CAPTCHA. Sin embargo, dicha cookie tiene un tiempo de vida (ttl, time to live) finito: una hora; transcurrida ésta, un nuevo desafío deberá ser resuelto por el usuario. No obstante, el parámetro opcional <ttl> permite, precisamente, controlar el tiempo de vida de esta cookie de sesión.
Por ejemplo, si quisiéramos limitar la presencia de bots en nuestro dominio mi-dominio.es, pero sin importunar excesivamente a nuestros usuarios legítimos, podríamos plantear la presencia de un CAPTCHA con un TTL de ocho horas. Así, nos bastaría con desplegar desde el panel una configuración VCL similar a la siguiente:
1
# show-captcha
2
sub vcl_recv {
3
if (req.http.host == "www.mi-dominio.es") {
4
set req.http.TCDN-Command = "show-captcha:28800s";
5
}
6
}
Copied!
De este modo, si el usuario resuelve satisfactoriamente el desafío presentado por el CAPTCHA, se le asignará la cookie TCDN-Captcha-UID y podrá continuar navegando con normalidad durante las siguientes ocho horas, cuando se le volverá a presentar el CAPTCHA. Alternativamente, si el usuario es incapaz de resolver la prueba, obtendrá como respuesta un status code 403 (Robots are not allowed here!).
Obviamente, éste no es más que un pequeño ejemplo de un caso de uso muy específico. Si tienes cualquier duda respecto a cómo integrar esta funcionalidad en tu propio dominio, por favor, no dudes en contactarnos a través de la dirección de correo electrónico [email protected].
Copiar enlace