¿Quieres luchar contra el SPAM en tus formularios sin tener que modificarlos? Una forma sencilla de evitar gran parte del SPAM automático son los snippets AntiSpamForm y AntiSpamModelForm. Están basados en los formularios anti-spam que utiliza la aplicación django.contrib.comments.
Utilizarlos es tan sencillo como guardarlos en nuestro proyecto (por ejemplo en un archivo llamado antispam_forms.py) y usarlos en la definición de nuestros formularios:
from antispam_forms import AntiSpamForm
class MiFormulario(AntiSpamForm):
# campos del formulario...
AntiSpamForm y AntiSpamModelForm utilizan tres métodos para prevenir el SPAM:
Un campo oculto timestamp que adquiere la fecha actual cuando se renderiza el formulario y que se controla en el envío del formulario para evitar envíos excesivamente rápidos (menos de 5 segundos) que generalmente son automáticos. También evita envíos retrasados (más de 2 horas) que pueden ser realizados por bots que primero guardan el formulario y lo tratan de enviar en algún otro momento.
Un campo oculto de hash de seguridad que se genera a partir del timestamp y del setting SECRET_KEY. El hash de seguridad enviado se compara con el hash de seguridad esperado cuando se envía el formulario para rechazar envíos que no incluyan el hash adecuado.
Un campo honeypot que utiliza un CSS display:none; para evitar ser mostrado en el navegador. Los usuarios no lo verán pero la mayoría de spambots tratarán de rellenarlo. El campo honeypot no será validado correctamente si contiene alguna información.
Publicado por Antonio Melé el Jueves 8 de Julio de 2010
Compártelo:
| Categorías:
forms,
snippets,
spam
¿Quieres evitar el spam en tus formularios sin tener que utilizar captchas ni tener que recurrir a servicios de terceros como Askimet? Entonces magicforms ...
El campo de formulario ModelChoiceField sirve para permitir la selección de un elemento entre los objetos resultantes de una QuerySet. La QuerySet inicial puede ...
Tras ver que la mayoría de los proyectos existentes para generar miniaturas de imágenes aún no funcionan con la API de Storage y que ...
Saber si nuestro visitante viene de un buscador es interesante en varios casos. Por ejemplo para almacenar el término de búsqueda que le ha ...
No hay ningún comentario todavía.
Suscríbete a nuestro feed RSS y al feed de la comunidad para estar al tanto de todo lo que ocurre entorno a Django.
Tú también puedes escribir en éste blog. Para hacerlo basta con que nos digas sobre qué quieres escribir un artículo relacionado con Django.
Utilizar un formulario para modificar 2 modelos
Descubriendo objetos similares por sus etiquetas