¿Cómo proteger los formularios de contacto contra el uso indebido del correo masivo?

9

Una función común de los formularios de contacto es enviar el mensaje de contacto no solo al propietario del sitio, sino también a la persona que envió la solicitud de contacto. ¿Cuáles son las buenas medidas para protegerse contra el formulario que se utiliza como herramienta de spam mediante un script automatizado que lo envía millones de veces con diferentes direcciones de correo electrónico?

Puedo pensar en varios enfoques, pero cada uno también tiene un inconveniente o no es muy efectivo.

  • Los CAPTCHA pueden romperse con demasiada facilidad hoy en día y son una molestia para el remitente humano.
  • La limitación de velocidad (solo n envíos por IP por día) no ayudará contra un script distribuido y puede obstaculizar a los usuarios proxy.
  • La detección de spam puede generar falsos positivos y, si requiere muchos recursos, hará que el sitio sea susceptible a ataques de DDOS.

Cada medida hace que sea más difícil / más intensivo en recursos para un atacante, por lo que podría buscar en otra parte. ¿Qué tan frecuente es el spam en forma de comentarios? ¿Tengo que preocuparme por eso?

    
pregunta chiborg 08.01.2016 - 18:32
fuente

3 respuestas

8

Tienes razón al permitir que usuarios de Internet arbitrarios y no autenticados controlen tanto el contenido como el destinatario de los mensajes de correo electrónico enviados por tu servicio web (es decir, el formulario "contáctanos" de tu sitio web) es una mala idea y un objetivo potencialmente atractivo para los spammers.

Si es importante para usted:

  • permite al usuario especificar un destinatario para el mensaje; y
  • enviar un mensaje a ese destinatario al enviar el formulario,

luego te sugiero que al menos evites que el usuario controle el contenido del mensaje.

¿Por qué no adoptar el tipo de enfoque que GNU Mailman toma cuando recibe una solicitud de suscripción? Es decir, primero envíe un correo electrónico de confirmación, de la siguiente manera:

  

Usted, o alguien que pretende ser usted, envió un mensaje para usar   Utilizando el formulario de contacto en nuestra web. Esto vino de [DIRECCION IP] y   dio su correo electrónico como dirección de correo electrónico del remitente. Si hiciste esto   envío, haga clic en [AQUÍ] o responda a este correo electrónico manteniendo el   línea de asunto intacta, para confirmar el envío de su formulario de contacto, y   leerá su presentación y responderá a su debido tiempo. Si no enviaste   Envíenos un mensaje a través de nuestro formulario de contacto, ignore este mensaje.

Usted podría limitar esto, de manera que no permita más de un envío anónimo a una dirección de correo electrónico dada por (semana | mes | año | lo que sea), con el temporizador restablecido si el usuario confirma según las instrucciones anteriores. Eso desalentaría a los trolls de usar el formulario para molestar a personas inocentes al hacer que se les envíen mensajes de confirmación falsos.

En cualquier caso, solo una vez que se haya verificado que el remitente del formulario de contacto tiene acceso a la cuenta de correo electrónico enviada, si el contenido del mensaje enviado se hace visible para el usuario de esa cuenta de correo electrónico.

    
respondido por el sampablokuper 08.01.2016 - 18:56
fuente
2

Permítame una respuesta parcial basada en la experiencia previa en administración de sistemas: sí, es bastante frecuente y debe preocuparse por ello.

Tan políticamente incorrecto como puede parecer: verifique si puede definir geográficamente su base de usuarios (¿dónde están las personas con las que desea hacer negocios?), y el límite de velocidad para todos los demás a través de las búsquedas de GeoIP.

    
respondido por el rackandboneman 08.01.2016 - 21:26
fuente
1

AKISMET es una alternativa interesante. Es como un filtro de spam, pero subcontratado y que combina el conocimiento que acumula de muchos sitios para proteger mejor el tuyo de SPAM.

Si bien se usa principalmente para proteger los comentarios de wordpress (lo he usado y realmente no recuerdo como solo falso positivo o spam que pasa el filtro), su API podría usarse para cualquier otra cosa: enlace

Usted envía los detalles de los datos de contacto a su API y ellos le darán una respuesta positiva o negativa. Hay API para reportar falsos positivos y falsos negativos.

Por supuesto, hay algunos aspectos de privacidad que deben considerarse aquí, ya que recibirán sus datos de contacto. Sin embargo, es una opción que podría ser considerada.

Otra sugerencia es usarla en combinación con las que ya mencionaste: si hay demasiados contactos de la misma IP, envía el contacto para que akismet lo revise.

    
respondido por el CristianTM 08.01.2016 - 18:44
fuente

Lea otras preguntas en las etiquetas