{"id":10088,"date":"2026-10-08T09:46:00","date_gmt":"2026-10-08T07:46:00","guid":{"rendered":"https:\/\/www.hostingtg.com\/blog\/?p=10088"},"modified":"2026-10-07T15:53:08","modified_gmt":"2026-10-07T13:53:08","slug":"honeypot-en-wordpress","status":"publish","type":"post","link":"https:\/\/www.hostingtg.com\/blog\/honeypot-en-wordpress\/","title":{"rendered":"Honeypot en WordPress: c\u00f3mo atrapar bots sin afectar a usuarios reales"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">El spam en WordPress tiene una capacidad especial para aparecer justo donde menos lo necesitamos: formularios de contacto, comentarios, registros de usuarios e incluso determinados procesos de WooCommerce. Y cuando intentamos frenarlo, es f\u00e1cil caer en una soluci\u00f3n que termina castigando tambi\u00e9n a las personas que s\u00ed queremos que utilicen nuestra web.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ah\u00ed es donde me parece especialmente interesante el <strong>honeypot en WordPress<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando pensamos en bloquear bots, una de las primeras soluciones que suele venirnos a la cabeza es el CAPTCHA. La l\u00f3gica es sencilla: ponemos una prueba que una persona puede superar y que supuestamente un bot tendr\u00e1 m\u00e1s dificultades para completar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El problema es que esa prueba tambi\u00e9n la tiene que superar nuestro visitante.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Con un honeypot intentamos darle la vuelta al planteamiento. En lugar de pedirle al usuario que demuestre que es humano, introducimos una peque\u00f1a trampa que deber\u00eda pasar completamente desapercibida para \u00e9l.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En mi caso, eso es precisamente lo que m\u00e1s me atrae de esta t\u00e9cnica: <strong>el usuario no tiene que hacer nada<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No necesita identificar sem\u00e1foros, marcar una casilla, esperar una comprobaci\u00f3n ni superar un reto adicional. Simplemente rellena el formulario con normalidad.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El honeypot trabaja por detr\u00e1s.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Su funcionamiento b\u00e1sico consiste en introducir en el formulario un campo que una persona real no deber\u00eda completar. Sin embargo, determinados bots automatizados intentan rellenar todos los campos que encuentran. Cuando completan tambi\u00e9n ese campo trampa, podemos utilizarlo como una se\u00f1al para considerar sospechoso el env\u00edo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eso no significa que un honeypot sea infalible. Los bots m\u00e1s avanzados pueden analizar el formulario con mayor detalle, detectar determinados campos ocultos o comportarse de una forma mucho m\u00e1s parecida a una persona.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Precisamente por eso considero el honeypot una <strong>primera capa de protecci\u00f3n muy interesante<\/strong>, no una soluci\u00f3n m\u00e1gica.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bien implementado puede ayudarnos a reducir una cantidad importante de spam con un impacto pr\u00e1cticamente invisible sobre los visitantes leg\u00edtimos. Y si el problema de spam aumenta, siempre podemos combinarlo con medidas adicionales.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Qu\u00e9 es un honeypot y por qu\u00e9 funciona contra el spam<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Un honeypot es, en esencia, una trampa dise\u00f1ada para aprovechar el comportamiento de determinados sistemas automatizados.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En un formulario normal podemos tener campos como nombre, correo electr\u00f3nico, tel\u00e9fono o mensaje. Una persona ve esos campos, entiende qu\u00e9 debe escribir en cada uno y completa \u00fanicamente los que corresponden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Muchos bots simples funcionan de otra manera.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No interpretan el formulario exactamente como lo har\u00eda una persona. Localizan elementos que parecen campos de entrada e intentan introducir informaci\u00f3n en ellos antes de enviar el formulario.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ah\u00ed podemos enga\u00f1arlos.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">El campo que una persona nunca deber\u00eda rellenar<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">La t\u00e9cnica consiste en introducir un campo adicional que forme parte del formulario pero que no est\u00e9 disponible de forma normal para el visitante.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una persona leg\u00edtima no deber\u00eda interactuar con \u00e9l. El formulario se comporta aparentemente como siempre y el usuario rellena \u00fanicamente los campos visibles.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El bot, sin embargo, puede detectar ese campo en el c\u00f3digo y tratarlo como uno m\u00e1s.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Imaginemos que nuestro formulario contiene:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Nombre.<\/li>\n\n\n\n<li>Correo electr\u00f3nico.<\/li>\n\n\n\n<li>Mensaje.<\/li>\n\n\n\n<li>Un cuarto campo preparado espec\u00edficamente como honeypot.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">El usuario \u00fanicamente interact\u00faa con los tres primeros.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si llega un env\u00edo en el que el cuarto campo tambi\u00e9n contiene informaci\u00f3n, tenemos una se\u00f1al de que probablemente el formulario ha sido procesado de manera autom\u00e1tica.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Me gusta especialmente esta t\u00e9cnica porque no introduce una tarea nueva para el usuario. El trabajo de detecci\u00f3n ocurre dentro del propio formulario.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">C\u00f3mo delata un honeypot a los bots autom\u00e1ticos<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Un honeypot no identifica a un bot porque pueda saber qui\u00e9n est\u00e1 detr\u00e1s del env\u00edo. Lo que hace es detectar un <strong>comportamiento an\u00f3malo<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La l\u00f3gica ser\u00eda algo parecido a esto:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Se carga el formulario.<\/li>\n\n\n\n<li>Junto a los campos normales existe un campo trampa.<\/li>\n\n\n\n<li>El visitante humano no lo completa.<\/li>\n\n\n\n<li>Un bot automatizado intenta rellenarlo.<\/li>\n\n\n\n<li>Al procesar el formulario comprobamos ese campo.<\/li>\n\n\n\n<li>Si contiene informaci\u00f3n, el env\u00edo puede rechazarse o marcarse como sospechoso.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Es un mecanismo sorprendentemente sencillo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Y precisamente esa sencillez explica tanto sus ventajas como sus limitaciones.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un bot b\u00e1sico que simplemente intenta rellenar cualquier campo disponible puede caer f\u00e1cilmente. Un sistema automatizado m\u00e1s sofisticado puede analizar mejor la estructura de la p\u00e1gina y decidir qu\u00e9 elementos debe ignorar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por eso no plantear\u00eda nunca el honeypot como una garant\u00eda absoluta de que ning\u00fan bot volver\u00e1 a atravesar nuestro formulario.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lo plantear\u00eda como lo que realmente es: <strong>una forma de eliminar parte del tr\u00e1fico automatizado utilizando sus propios patrones de comportamiento contra \u00e9l<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Por qu\u00e9 usar un honeypot en WordPress<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Hay multitud de formas de proteger un formulario. La raz\u00f3n por la que el honeypot me parece especialmente apropiado para WordPress es que puede a\u00f1adir protecci\u00f3n sin transformar necesariamente la experiencia del visitante.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando instalamos una medida antispam deber\u00edamos hacernos dos preguntas:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00bfCu\u00e1nto spam bloquea?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">y<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00bfQu\u00e9 coste introduce para los usuarios leg\u00edtimos?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La segunda se olvida con demasiada frecuencia.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Menos fricci\u00f3n para el usuario<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Cada paso adicional que a\u00f1adimos a un formulario es una peque\u00f1a barrera.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En ocasiones esa barrera est\u00e1 completamente justificada. Pero si puedo evitarla y seguir reduciendo buena parte del spam, prefiero empezar por ah\u00ed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Con un honeypot correctamente implementado, el usuario puede no saber siquiera que existe una protecci\u00f3n antispam.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En mi caso, este es el principal motivo por el que lo probar\u00eda antes de introducir mecanismos m\u00e1s intrusivos. Si una persona quiere enviarme un mensaje, registrarse o completar una acci\u00f3n determinada, prefiero no pedirle que haga trabajo adicional si no es imprescindible.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eso resulta especialmente importante en formularios sencillos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un usuario que solamente quiere escribir su nombre, correo y un mensaje probablemente no espera encontrarse adem\u00e1s con pruebas, casillas o verificaciones adicionales.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Con el honeypot, simplemente rellena el formulario.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Honeypot frente a CAPTCHA: diferencias importantes<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Honeypot y CAPTCHA intentan solucionar un problema parecido, pero parten de filosof\u00edas bastante distintas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.hostingtg.com\/blog\/hcaptcha-en-wordpress\/\">Un CAPTCHA<\/a> a\u00f1ade una comprobaci\u00f3n que pretende separar humanos de m\u00e1quinas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un honeypot intenta conseguir lo mismo observando el comportamiento del env\u00edo sin pedir una prueba expl\u00edcita al usuario.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos resumirlo as\u00ed:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><th>Aspecto<\/th><th>Honeypot<\/th><th>CAPTCHA<\/th><\/tr><tr><td>Acci\u00f3n adicional del usuario<\/td><td>Normalmente no<\/td><td>Puede requerirla<\/td><\/tr><tr><td>Visibilidad<\/td><td>Puede ser pr\u00e1cticamente invisible<\/td><td>Habitualmente perceptible<\/td><\/tr><tr><td>Fricci\u00f3n<\/td><td>Baja<\/td><td>Variable<\/td><\/tr><tr><td>Bots b\u00e1sicos<\/td><td>Puede ser muy \u00fatil<\/td><td>Tambi\u00e9n puede frenarlos<\/td><\/tr><tr><td>Bots avanzados<\/td><td>Pueden llegar a detectarlo<\/td><td>Tambi\u00e9n pueden existir t\u00e9cnicas para eludirlo<\/td><\/tr><tr><td>Uso como \u00fanica defensa<\/td><td>Depende del nivel de spam<\/td><td>Tampoco deber\u00eda asumirse como infalible<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">No creo que tenga sentido plantearlo como una batalla en la que uno debe sustituir siempre al otro.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hay situaciones en las que un CAPTCHA puede estar justificado. Si estoy recibiendo ataques automatizados persistentes y las medidas m\u00e1s ligeras no son suficientes, probablemente prefiera introducir una barrera adicional antes que dejar el formulario completamente expuesto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pero empezar\u00eda por la opci\u00f3n menos molesta.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Cu\u00e1ndo elegir\u00eda un honeypot antes que otras soluciones antispam<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Lo considerar\u00eda especialmente en sitios donde:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>el nivel de spam todav\u00eda es manejable;<\/li>\n\n\n\n<li>queremos proteger formularios sencillos;<\/li>\n\n\n\n<li>la experiencia de usuario es prioritaria;<\/li>\n\n\n\n<li>buscamos una soluci\u00f3n que no obligue al visitante a realizar comprobaciones;<\/li>\n\n\n\n<li>queremos a\u00f1adir una primera capa antes de recurrir a protecciones m\u00e1s agresivas.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n me parece especialmente razonable cuando estamos optimizando una web en la que cada paso adicional puede tener impacto sobre la conversi\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En seguridad muchas veces no necesitamos complicar las cosas desde el minuto uno.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si una t\u00e9cnica pr\u00e1cticamente invisible elimina una parte relevante del problema, para m\u00ed ya merece la pena probarla.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">D\u00f3nde puedes utilizar un honeypot en WordPress<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Aunque es frecuente relacionar esta t\u00e9cnica con el spam en comentarios, su utilidad no termina ah\u00ed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La l\u00f3gica puede aplicarse a distintos lugares en los que recibimos informaci\u00f3n mediante formularios.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Formularios de contacto<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Probablemente sean uno de los casos m\u00e1s evidentes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.hostingtg.com\/blog\/mejores-plugins-wordpress-crear-formularios\/\">Los formularios de contacto<\/a> reciben constantemente env\u00edos autom\u00e1ticos porque son f\u00e1ciles de localizar y porque suelen permitir introducir texto libre.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un bot puede intentar completar nombre, correo electr\u00f3nico, asunto, tel\u00e9fono y mensaje de manera autom\u00e1tica.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A\u00f1adir un campo trampa nos permite aprovechar precisamente esa tendencia.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si el visitante real nunca deber\u00eda interactuar con \u00e9l y un env\u00edo llega con ese campo completado, tenemos un indicador adicional para filtrarlo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En mi caso, este ser\u00eda uno de los primeros lugares donde valorar\u00eda utilizar un honeypot.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Comentarios de WordPress<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Los comentarios han sido hist\u00f3ricamente uno de los objetivos m\u00e1s evidentes del spam automatizado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aqu\u00ed el objetivo suele ser publicar mensajes gen\u00e9ricos, introducir enlaces o aprovechar espacios abiertos al contenido generado por usuarios.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un honeypot puede a\u00f1adir una comprobaci\u00f3n extra antes de aceptar ese comentario.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esto no significa que debamos olvidar otras funciones de moderaci\u00f3n de WordPress. El honeypot trabaja mejor como parte del sistema, no necesariamente como sustituto de todo lo dem\u00e1s.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos utilizarlo para descartar determinados comportamientos automatizados antes de que generen todav\u00eda m\u00e1s ruido dentro de nuestra administraci\u00f3n.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Formularios de registro<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Los registros falsos tambi\u00e9n pueden convertirse en un problema.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando un sitio permite crear cuentas, los bots pueden intentar automatizar el proceso para generar usuarios falsos, preparar abusos posteriores o simplemente saturar el sistema.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La t\u00e9cnica del campo trampa puede a\u00f1adirse tambi\u00e9n aqu\u00ed siempre que tengamos muy presente la posibilidad de falsos positivos y probemos correctamente el funcionamiento.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Los formularios de registro suelen ser m\u00e1s sensibles que un comentario, porque bloquear incorrectamente a un usuario leg\u00edtimo puede impedirle acceder al servicio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por eso aqu\u00ed prestar\u00eda todav\u00eda m\u00e1s atenci\u00f3n a la validaci\u00f3n y las pruebas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">WooCommerce y otros formularios sensibles<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">En <a href=\"https:\/\/www.hostingtg.com\/blog\/que-es-woocommerce\/\">WooCommerce<\/a> podemos encontrarnos con registros, formularios relacionados con cuentas, consultas y otros puntos en los que existe interacci\u00f3n automatizable.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No utilizar\u00eda un honeypot indiscriminadamente en cualquier operaci\u00f3n sensible sin comprobar antes el flujo completo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En comercio electr\u00f3nico hay elementos como autocompletado, gestores de contrase\u00f1as, navegadores y extensiones que pueden interactuar con los formularios.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La protecci\u00f3n tiene que convivir con todos ellos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La idea sigue siendo la misma: <strong>capturar comportamiento automatizado sin convertir la defensa en un obst\u00e1culo para el cliente real<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">C\u00f3mo implementar un honeypot en WordPress<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Hay dos caminos principales: utilizar una soluci\u00f3n ya preparada o implementar la l\u00f3gica nosotros mismos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La elecci\u00f3n depende de cu\u00e1nto control necesitemos y del nivel t\u00e9cnico con el que queramos trabajar.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Opci\u00f3n 1: utilizar un plugin honeypot<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Para la mayor\u00eda de usuarios de WordPress, empezar con un plugin o con una funci\u00f3n honeypot incluida en su sistema de formularios suele ser el enfoque m\u00e1s sencillo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La ventaja principal es evidente: evitamos desarrollar y mantener nuestra propia implementaci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Antes de elegir una soluci\u00f3n revisar\u00eda, como m\u00ednimo:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>qu\u00e9 formularios protege;<\/li>\n\n\n\n<li>c\u00f3mo realiza el bloqueo;<\/li>\n\n\n\n<li>si permite revisar o registrar los env\u00edos detectados;<\/li>\n\n\n\n<li>si requiere JavaScript;<\/li>\n\n\n\n<li>si es compatible con nuestro sistema de cach\u00e9;<\/li>\n\n\n\n<li>c\u00f3mo trata los datos;<\/li>\n\n\n\n<li>si puede convivir con otras medidas antispam.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">No instalar\u00eda un plugin \u00fanicamente porque incluya la palabra \u201choneypot\u201d. Lo importante es c\u00f3mo est\u00e1 implementada la t\u00e9cnica y si encaja con nuestro caso.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Opci\u00f3n 2: crear un honeypot sin plugin<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n podemos <a href=\"https:\/\/www.hostingtg.com\/blog\/wpcode-anadir-fragmentos-codigo-wordpress\/\">implementar la l\u00f3gica directamente<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Conceptualmente necesitamos tres piezas:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>A\u00f1adir un <a href=\"https:\/\/www.hostingtg.com\/blog\/formularios-html\/\">campo adicional al formulario<\/a>.<\/li>\n\n\n\n<li>Mantenerlo fuera de la interacci\u00f3n normal del usuario.<\/li>\n\n\n\n<li>Comprobar su contenido al procesar el env\u00edo.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">La parte cr\u00edtica es la tercera.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No basta con introducir un campo en el HTML. Necesitamos validar realmente su valor cuando recibimos los datos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La l\u00f3gica conceptual ser\u00eda:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>si el campo_honeypot contiene informaci\u00f3n:\n    marcar el env\u00edo como sospechoso\n    impedir el procesamiento normal\nsi el campo_honeypot est\u00e1 vac\u00edo:\n    continuar con el resto de validaciones<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">En WordPress, una implementaci\u00f3n propia deber\u00eda integrarse con los mecanismos disponibles para el formulario concreto que queremos proteger.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No existe un \u00fanico c\u00f3digo universal v\u00e1lido para todos los plugins de formularios, comentarios, registros y WooCommerce.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cada flujo puede procesar la informaci\u00f3n de forma distinta.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">La validaci\u00f3n debe hacerse tambi\u00e9n en el servidor<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Este punto me parece especialmente importante.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No confiar\u00eda \u00fanicamente en una comprobaci\u00f3n realizada en el navegador.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Todo lo que ocurre exclusivamente en el lado del cliente puede ser ignorado por un sistema que env\u00ede peticiones directamente al servidor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por eso la comprobaci\u00f3n importante debe ocurrir cuando procesamos el env\u00edo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si el campo trampa llega completado, el servidor decide qu\u00e9 hacer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adem\u00e1s, yo evitar\u00eda dar una respuesta excesivamente espec\u00edfica al bot que le indique exactamente por qu\u00e9 ha sido bloqueado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cuanta menos informaci\u00f3n regalemos sobre nuestras reglas internas, mejor.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">C\u00f3mo ocultar correctamente el campo honeypot<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Aqu\u00ed aparece uno de los errores m\u00e1s interesantes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Podr\u00edamos pensar que implementar un honeypot consiste simplemente en crear un campo y aplicarle:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>display: none;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">El problema es que los sistemas automatizados m\u00e1s sofisticados pueden analizar precisamente ese tipo de se\u00f1ales.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Por qu\u00e9 <code>display:none<\/code> no siempre es la mejor soluci\u00f3n<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Si un bot es capaz de inspeccionar HTML y CSS, un elemento expl\u00edcitamente marcado como invisible puede resultar sospechoso.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eso no significa que <code>display:none<\/code> sea siempre in\u00fatil.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Significa que <strong>ocultar visualmente el campo no deber\u00eda ser la \u00fanica idea detr\u00e1s de nuestra protecci\u00f3n<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cuanto m\u00e1s predecible sea la implementaci\u00f3n, m\u00e1s sencillo puede resultar clasificarla.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n evitar\u00eda nombres tremendamente obvios como:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>honeypot\nbot_field\nspam_trap\ndont_fill_this<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ese tipo de nombres explican pr\u00e1cticamente la funci\u00f3n del campo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">CSS, <code>tabindex<\/code> y <code>aria-hidden<\/code><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Al ocultar un honeypot tenemos que pensar tambi\u00e9n en las personas que navegan de formas diferentes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No queremos que el campo sea invisible visualmente pero termine apareciendo durante la navegaci\u00f3n con teclado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tampoco queremos que una tecnolog\u00eda de asistencia lo interprete como un campo que el usuario deber\u00eda completar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dependiendo de la implementaci\u00f3n, atributos y t\u00e9cnicas relacionadas con accesibilidad pueden ayudarnos a excluir el campo de la interacci\u00f3n normal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La idea no es simplemente:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u201cque no se vea\u201d.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La idea correcta es:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u201cque no interfiera con la experiencia del usuario leg\u00edtimo\u201d.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ese matiz es importante.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Autocompletado y gestores de contrase\u00f1as<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Aqu\u00ed aparece otro posible problema.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un usuario real podr\u00eda no escribir nada manualmente en el campo honeypot y, aun as\u00ed, alguna funci\u00f3n autom\u00e1tica de su navegador podr\u00eda llegar a interactuar con determinados campos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por eso conviene probar el formulario utilizando:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>autocompletado del navegador;<\/li>\n\n\n\n<li>gestores de contrase\u00f1as;<\/li>\n\n\n\n<li>navegaci\u00f3n con teclado;<\/li>\n\n\n\n<li>distintos dispositivos;<\/li>\n\n\n\n<li>distintos navegadores.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Un honeypot mal implementado puede terminar creando exactamente el problema que quer\u00edamos evitar: bloquear personas reales.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">C\u00f3mo evitar que el honeypot afecte a usuarios reales<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para m\u00ed, esta es una de las secciones m\u00e1s importantes de toda la estrategia.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bloquear bots es relativamente f\u00e1cil si estamos dispuestos a bloquear tambi\u00e9n a media humanidad.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El objetivo complicado es reducir automatizaciones <strong>sin perjudicar a los visitantes leg\u00edtimos<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Accesibilidad y navegaci\u00f3n por teclado<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Un campo que visualmente no aparece puede seguir formando parte del recorrido mediante teclado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eso significa que alguien que navegue pulsando Tab podr\u00eda encontr\u00e1rselo aunque el resto de usuarios no lo vea.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si eso ocurre, ya no tenemos un honeypot realmente invisible desde el punto de vista de la experiencia.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lo mismo sucede con determinadas tecnolog\u00edas de asistencia.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por eso no tratar\u00eda la accesibilidad como una mejora opcional posterior. Forma parte de la propia implementaci\u00f3n.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">C\u00f3mo reducir falsos positivos<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Un falso positivo ocurre cuando clasificamos como bot algo que realmente era una persona leg\u00edtima.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ese es el principal riesgo de cualquier sistema autom\u00e1tico de filtrado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para reducirlos podemos plantearnos preguntas como:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u00bfPuede el navegador completar el campo autom\u00e1ticamente?<\/li>\n\n\n\n<li>\u00bfPuede una extensi\u00f3n modificarlo?<\/li>\n\n\n\n<li>\u00bfAparece durante la navegaci\u00f3n por teclado?<\/li>\n\n\n\n<li>\u00bfPuede una tecnolog\u00eda de asistencia interactuar con \u00e9l?<\/li>\n\n\n\n<li>\u00bfEstamos bloqueando exclusivamente por una \u00fanica se\u00f1al demasiado d\u00e9bil?<\/li>\n\n\n\n<li>\u00bfTenemos forma de revisar qu\u00e9 est\u00e1 ocurriendo?<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Personalmente prefiero que la protecci\u00f3n sea progresiva antes que convertir una se\u00f1al dudosa en una sentencia absoluta.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Qu\u00e9 conviene comprobar antes de ponerlo en producci\u00f3n<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Antes de activar el sistema para todos los visitantes probar\u00eda:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Env\u00edo normal desde escritorio.<\/li>\n\n\n\n<li>Env\u00edo desde m\u00f3vil.<\/li>\n\n\n\n<li>Navegaci\u00f3n mediante teclado.<\/li>\n\n\n\n<li>Autocompletado.<\/li>\n\n\n\n<li>Gestor de contrase\u00f1as, si corresponde.<\/li>\n\n\n\n<li>Distintos navegadores.<\/li>\n\n\n\n<li>Formulario con cach\u00e9 activa.<\/li>\n\n\n\n<li>Comportamiento al introducir deliberadamente informaci\u00f3n en el campo trampa.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n comprobar\u00eda qu\u00e9 ve el usuario cuando el env\u00edo es bloqueado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No queremos mostrar un error extra\u00f1o o dejar el formulario congelado de una forma que delate el funcionamiento interno y, al mismo tiempo, confunda a una persona real.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Errores habituales al utilizar un honeypot en WordPress<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La t\u00e9cnica es sencilla, pero precisamente por eso resulta f\u00e1cil implementarla de forma demasiado b\u00e1sica.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Usar nombres de campo demasiado evidentes<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Llamar al campo <code>honeypot<\/code> es c\u00f3modo para nosotros.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n puede ser c\u00f3modo para un bot que busque patrones conocidos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No necesitamos utilizar nombres enga\u00f1osos hasta el punto de perjudicar el mantenimiento del c\u00f3digo, pero tampoco hace falta anunciar la funci\u00f3n del campo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Confiar \u00fanicamente en un campo oculto<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Este es probablemente el error conceptual m\u00e1s importante.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No creo que debamos ver el honeypot como una protecci\u00f3n infalible.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Los bots m\u00e1s avanzados pueden analizar el formulario, interpretar estilos CSS o ejecutar JavaScript. Algunos sistemas automatizados pueden incluso imitar comportamientos propios de un navegador real.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por eso, cuando una web recibe cantidades importantes de spam, tiene m\u00e1s sentido considerar el honeypot como una capa de defensa.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Bloquear el env\u00edo sin validar correctamente la se\u00f1al<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">La existencia del campo por s\u00ed misma no hace nada.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Necesitamos:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>recibirlo;<\/li>\n\n\n\n<li>comprobarlo;<\/li>\n\n\n\n<li>interpretar correctamente su valor;<\/li>\n\n\n\n<li>decidir c\u00f3mo tratamos el env\u00edo.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Adem\u00e1s, deber\u00edamos mantener el resto de validaciones habituales del formulario.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Que el honeypot est\u00e9 vac\u00edo no convierte autom\u00e1ticamente el env\u00edo en leg\u00edtimo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Simplemente significa que <strong>no ha activado esa regla concreta<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">No comprobar si el sistema realmente est\u00e1 atrapando bots<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Instalar una protecci\u00f3n y olvidarnos de ella tampoco me parece una buena estrategia.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si es posible, conviene disponer de alguna forma de saber si est\u00e1 funcionando.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No necesitamos registrar informaci\u00f3n indefinidamente ni recopilar datos innecesarios.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pero s\u00ed resulta \u00fatil saber:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>cu\u00e1ntos env\u00edos est\u00e1 deteniendo;<\/li>\n\n\n\n<li>si el spam sigue llegando;<\/li>\n\n\n\n<li>si aparecen falsos positivos;<\/li>\n\n\n\n<li>si el comportamiento cambia con el tiempo.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Eso nos permite decidir si la protecci\u00f3n actual sigue siendo suficiente.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfPueden los bots avanzados detectar un honeypot?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">S\u00ed, esa posibilidad existe.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Y reconocerlo no hace que la t\u00e9cnica sea mala.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lo \u00fanico que significa es que debemos entender qu\u00e9 problema estamos intentando solucionar.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Bots que analizan HTML, CSS y JavaScript<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Un bot muy b\u00e1sico puede localizar formularios y rellenar todos los campos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ese es el candidato ideal para caer en un honeypot.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un sistema m\u00e1s sofisticado puede intentar analizar:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>si el campo est\u00e1 visible;<\/li>\n\n\n\n<li>qu\u00e9 estilos tiene;<\/li>\n\n\n\n<li>d\u00f3nde aparece en el documento;<\/li>\n\n\n\n<li>qu\u00e9 nombre utiliza;<\/li>\n\n\n\n<li>si puede recibir foco;<\/li>\n\n\n\n<li>c\u00f3mo interact\u00faa JavaScript con \u00e9l.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Incluso puede ejecutar una p\u00e1gina dentro de un navegador automatizado y comportarse de forma mucho m\u00e1s parecida a un visitante normal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cuanto m\u00e1s sofisticado sea el atacante, menos sentido tiene confiar en una \u00fanica se\u00f1al.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Por qu\u00e9 ning\u00fan honeypot deber\u00eda considerarse infalible<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Este es un punto en el que prefiero ser prudente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si alguien promete que un campo oculto va a eliminar para siempre todo el spam de una web, yo desconfiar\u00eda.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La seguridad funciona mejor cuando combinamos se\u00f1ales.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El honeypot tiene una ventaja enorme: su coste para el usuario puede ser pr\u00e1cticamente cero.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por eso me parece una primera barrera excelente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pero si un bot consigue pasarla, podemos a\u00f1adir otras.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lo importante es no empezar necesariamente con la medida m\u00e1s agresiva cuando una protecci\u00f3n m\u00e1s ligera puede resolver buena parte del problema.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Honeypot como parte de una protecci\u00f3n antispam por capas<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando el spam aumenta, mi enfoque ser\u00eda a\u00f1adir controles poco a poco.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No sustituir necesariamente el honeypot, sino complementarlo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Combinarlo con controles de tiempo<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Una persona necesita cierto tiempo para leer y completar un formulario.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un sistema automatizado puede intentar enviarlo pr\u00e1cticamente de inmediato.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El tiempo puede convertirse as\u00ed en otra se\u00f1al.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De nuevo, evitar\u00eda utilizar una cifra r\u00edgida como \u00fanica condici\u00f3n, porque existen usuarios con autocompletado o formularios extremadamente sencillos que pueden enviarlos muy r\u00e1pido.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pero combinado con otros indicadores puede resultar \u00fatil.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Rate limiting y l\u00edmites de env\u00edo<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Otra se\u00f1al bastante distinta es la frecuencia.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Que una direcci\u00f3n o cliente intente enviar un formulario una vez no tiene el mismo significado que hacerlo decenas de veces en un intervalo muy reducido.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.hostingtg.com\/blog\/cloudflare-waf-como-proteger-tu-wordpress\/\">Introducir l\u00edmites razonables<\/a> puede ayudar a frenar automatizaciones agresivas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El punto importante vuelve a ser el equilibrio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un l\u00edmite demasiado restrictivo tambi\u00e9n puede bloquear comportamientos leg\u00edtimos.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Cu\u00e1ndo merece la pena a\u00f1adir CAPTCHA u otras defensas<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Si despu\u00e9s de implementar el honeypot seguimos recibiendo spam importante, no tendr\u00eda ning\u00fan problema en <a href=\"https:\/\/www.hostingtg.com\/blog\/wordfence-wordpress\/\">aumentar la protecci\u00f3n<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos considerar medidas adicionales cuando:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>el volumen de spam sigue siendo elevado;<\/li>\n\n\n\n<li>los bots est\u00e1n evitando regularmente el honeypot;<\/li>\n\n\n\n<li>sufrimos registros automatizados;<\/li>\n\n\n\n<li>existe abuso reiterado de formularios;<\/li>\n\n\n\n<li>el coste del spam supera claramente la posible fricci\u00f3n adicional.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">En mi caso, ese ser\u00eda el momento de valorar mecanismos m\u00e1s intrusivos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Primero intentar\u00eda eliminar la parte sencilla del problema de forma silenciosa.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Despu\u00e9s endurecer\u00eda la defensa solo donde sea necesario.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">C\u00f3mo comprobar si tu honeypot est\u00e1 funcionando<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La \u00fanica forma de saber si una medida antispam sirve es observar qu\u00e9 ocurre despu\u00e9s de implementarla.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No asumir\u00eda que funciona simplemente porque el formulario sigue envi\u00e1ndose correctamente.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Revisar env\u00edos bloqueados sin almacenar m\u00e1s datos de los necesarios<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Si nuestra herramienta permite <a href=\"https:\/\/www.hostingtg.com\/blog\/registra-todo-lo-que-ocurre-en-tu-wordpress\/\">consultar actividad<\/a> o estad\u00edsticas, podemos utilizarlas para comprobar si el campo trampa se est\u00e1 activando.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No necesitamos conservar indefinidamente todos los datos recibidos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La idea es obtener suficiente informaci\u00f3n para responder:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00bfEst\u00e1 bloqueando algo?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">y, sobre todo:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00bfest\u00e1 bloqueando lo correcto?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si activamos un honeypot y detectamos una ca\u00edda del spam visible al mismo tiempo que aparecen bloqueos coherentes, tendremos una se\u00f1al de que est\u00e1 aportando valor.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Detectar falsos positivos<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Esta parte es incluso m\u00e1s importante.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Deber\u00edamos prestar atenci\u00f3n a:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>usuarios que informan de errores;<\/li>\n\n\n\n<li>formularios que dejan de llegar;<\/li>\n\n\n\n<li>problemas reproducibles en determinados navegadores;<\/li>\n\n\n\n<li>incompatibilidades con autocompletado;<\/li>\n\n\n\n<li>comportamiento extra\u00f1o en m\u00f3vil;<\/li>\n\n\n\n<li>problemas despu\u00e9s de actualizar plugins o plantillas.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Si alguna de esas se\u00f1ales aparece justo despu\u00e9s de activar la protecci\u00f3n, merece la pena investigarla.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ajustar la protecci\u00f3n seg\u00fan el tipo de spam recibido<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">No todo el spam se comporta igual.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Puede ocurrir que el honeypot elimine gran parte de los env\u00edos b\u00e1sicos pero siga dejando pasar otros mucho m\u00e1s sofisticados.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eso no significa necesariamente que haya fracasado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Quiz\u00e1 simplemente haya hecho correctamente su trabajo sobre una parte del problema.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A partir de ah\u00ed podemos decidir si merece la pena a\u00f1adir otra capa.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ese enfoque me parece mucho m\u00e1s sensato que activar desde el principio cinco sistemas diferentes y despu\u00e9s no saber cu\u00e1l est\u00e1 ayudando y cu\u00e1l est\u00e1 perjudicando al usuario.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfMerece la pena utilizar un honeypot en WordPress?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para m\u00ed, s\u00ed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sobre todo porque consigue algo que no siempre es f\u00e1cil en seguridad: <strong>a\u00f1adir protecci\u00f3n sin obligar al usuario leg\u00edtimo a cambiar su comportamiento<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una persona entra en el formulario, escribe lo que necesita y lo env\u00eda.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nada m\u00e1s.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mientras tanto, determinados bots pueden delatarse precisamente porque intentan interactuar con elementos que un visitante normal nunca tocar\u00eda.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eso convierte al honeypot en una soluci\u00f3n especialmente interesante para formularios de contacto, comentarios, registros y otros puntos de entrada susceptibles de recibir spam.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pero mantendr\u00eda una expectativa realista.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un honeypot no es una muralla infranqueable.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Los bots evolucionan, algunos pueden analizar mejor la p\u00e1gina y ninguna se\u00f1al aislada deber\u00eda considerarse perfecta.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por eso mi enfoque ser\u00eda sencillo:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>empieza con la protecci\u00f3n menos intrusiva que resuelva el problema y aumenta las defensas \u00fanicamente cuando haga falta.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En seguridad muchas veces no necesitamos complicar las cosas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si podemos eliminar una parte importante del spam mediante una t\u00e9cnica que el usuario ni siquiera percibe, para m\u00ed ya merece la pena utilizarla.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Y si m\u00e1s adelante necesitamos a\u00f1adir controles de tiempo, l\u00edmites de frecuencia, CAPTCHA u otras medidas, podremos hacerlo sobre una base que ya est\u00e1 filtrando parte del ruido.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Dudas de la comunidad<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfQu\u00e9 es un honeypot en WordPress?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Un honeypot es una t\u00e9cnica antispam que a\u00f1ade al formulario un campo que un usuario leg\u00edtimo no deber\u00eda completar. Determinados bots intentan rellenar todos los campos disponibles y terminan introduciendo informaci\u00f3n tambi\u00e9n en esa trampa.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Al procesar el env\u00edo podemos utilizar ese comportamiento como se\u00f1al para bloquearlo o tratarlo como sospechoso.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfUn honeypot puede sustituir a un CAPTCHA?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Depende del tipo y volumen de spam que reciba la web.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para determinados bots autom\u00e1ticos, un honeypot puede resultar suficiente y tiene la ventaja de que normalmente no exige ninguna interacci\u00f3n adicional al usuario.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En entornos con ataques m\u00e1s sofisticados puede ser conveniente combinarlo con otras medidas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfLos usuarios pueden ver el campo honeypot?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">La intenci\u00f3n es que el campo no forme parte de la interacci\u00f3n normal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sin embargo, no basta con ocultarlo visualmente. Una buena implementaci\u00f3n tambi\u00e9n debe tener en cuenta navegaci\u00f3n mediante teclado, tecnolog\u00edas de asistencia, autocompletado y otros mecanismos que pueden interactuar con formularios.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfUn honeypot puede bloquear a una persona real?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">S\u00ed, una mala implementaci\u00f3n puede generar falsos positivos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo, determinados mecanismos de autocompletado podr\u00edan llegar a interactuar con campos que el usuario no ha rellenado manualmente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por eso recomiendo probar el formulario en distintos navegadores, dispositivos y situaciones antes de confiar plenamente en el sistema.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfFunciona contra todos los bots?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">No.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Los bots sencillos que intentan rellenar indiscriminadamente todos los campos son los m\u00e1s f\u00e1ciles de detectar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Los sistemas m\u00e1s avanzados pueden analizar HTML, CSS o JavaScript y llegar a identificar que determinados elementos forman parte de una trampa.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfEs mejor instalar un plugin o crear el honeypot manualmente?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Para la mayor\u00eda de usuarios, una soluci\u00f3n ya integrada suele ser m\u00e1s sencilla de implementar y mantener.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Crear un honeypot propio ofrece m\u00e1s control, pero tambi\u00e9n nos obliga a encargarnos de la integraci\u00f3n, validaci\u00f3n, accesibilidad, mantenimiento y compatibilidad.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La elecci\u00f3n depende del proyecto.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfAfecta un honeypot al rendimiento de WordPress?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Una implementaci\u00f3n sencilla deber\u00eda a\u00f1adir muy poca complejidad comparada con sistemas antispam mucho m\u00e1s pesados.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De todos modos, el impacto real depender\u00e1 de c\u00f3mo est\u00e9 desarrollada la soluci\u00f3n concreta.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No asumir\u00eda que cualquier plugin es ligero simplemente por utilizar honeypot.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfSe puede utilizar un honeypot en WooCommerce?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">La l\u00f3gica del honeypot puede aplicarse a distintos formularios, incluidos algunos relacionados con WooCommerce.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sin embargo, probar\u00eda con especial cuidado cualquier protecci\u00f3n a\u00f1adida a procesos sensibles para comprobar que no interfiere con usuarios leg\u00edtimos, autocompletado o funcionalidades del propio proceso de compra.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfC\u00f3mo puedo saber si el honeypot est\u00e1 funcionando?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Lo ideal es poder comprobar si est\u00e1 detectando env\u00edos y comparar el nivel de spam antes y despu\u00e9s de activarlo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n debemos vigilar el otro lado de la ecuaci\u00f3n: que los formularios leg\u00edtimos sigan funcionando correctamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El mejor honeypot no es simplemente el que bloquea muchas peticiones. Es el que consigue <strong>reducir bots sin convertirse \u00e9l mismo en un problema para las personas<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Opini\u00f3n Personal<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Honeypot es una de esas soluciones que encajan muy bien con la filosof\u00eda de \u201chacer m\u00e1s con menos\u201d. No necesita molestar al usuario, no introduce pruebas adicionales y, bien implementado, puede ayudarnos a reducir una parte importante del spam de forma totalmente discreta.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lo que m\u00e1s valoro es precisamente esa combinaci\u00f3n entre simplicidad y experiencia de usuario. Si puedo proteger un formulario sin obligar a nadie a resolver un CAPTCHA, marcar casillas o identificar im\u00e1genes, prefiero empezar por ah\u00ed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eso s\u00ed, tampoco lo veo como una soluci\u00f3n milagrosa. Los bots m\u00e1s avanzados pueden aprender a detectar este tipo de campos y, en determinadas webs, ser\u00e1 necesario combinar el honeypot con otras medidas. Para m\u00ed, la clave est\u00e1 en utilizarlo como una primera capa de defensa y aumentar la protecci\u00f3n solo cuando realmente haga falta.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Al final, una buena estrategia antispam no deber\u00eda centrarse \u00fanicamente en bloquear bots, sino tambi\u00e9n en no poner obst\u00e1culos innecesarios a las personas reales.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00bfT\u00fa utilizas honeypot en WordPress? \u00bfTe ha funcionado bien o sigues recibiendo spam? Cu\u00e9ntame tu experiencia en los comentarios; me interesa conocer qu\u00e9 soluci\u00f3n est\u00e1s utilizando y qu\u00e9 resultados te est\u00e1 dando.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>El spam en WordPress tiene una capacidad especial para aparecer justo donde menos lo necesitamos: formularios de contacto, comentarios, registros de usuarios e incluso determinados procesos de WooCommerce. Y cuando intentamos frenarlo, es f\u00e1cil caer en una soluci\u00f3n que termina castigando tambi\u00e9n a las personas que s\u00ed queremos que utilicen nuestra web. Ah\u00ed es donde [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":10089,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[491],"tags":[1512,1511,1348,1513],"class_list":["post-10088","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wordpress","tag-antispam","tag-honeypot","tag-plugin-wordpress","tag-spam"],"_links":{"self":[{"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/posts\/10088","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/comments?post=10088"}],"version-history":[{"count":9,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/posts\/10088\/revisions"}],"predecessor-version":[{"id":10100,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/posts\/10088\/revisions\/10100"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/media\/10089"}],"wp:attachment":[{"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/media?parent=10088"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/categories?post=10088"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/tags?post=10088"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}