Desde hace mucho tengo en marcha una wiki de programación que es una instalación de mediawiki. La idea original, como toda wiki que se precie, es que la gente pudiera colaborar, añadiendo o corrigiendo artículos, comentando en la pestaña discusión, etc, etc.
Pero el spam empezó a hacer de las suyas. Tuve primero que obligar al registro de usuarios para poder crear/modificar y luego tuve incluso que quitar la posibilidad de auto-registrarse como usuario. Había diariamente, incluso a pesar de la obligación de registrarse como usuario, varias páginas de spam muevas. Y pasaba todos los días un rato borrando estas páginas.
Hace unos días decidí volver a meter mano a esto. Estaba bastante seguro que una herramienta como mediawiki tenía que tener mecanismos antispam. Y efectivamente, encontré esta guía de combate contra el spam. Esa guía comenta que hay un montón de posibilidades y que se pueden poner más o menos todas, pero que se puede reducir drásticamente con solo tres o cuatro plugins.
Dicho y hecho, me entretuve instando esos plugins y configurándolos. Hasta ahora, un mes después, y con posibilidad de modificar sin necesidad de registrarse como usuario, cero spam. A ver si sigue así.
Los cuatro plugins son los siguientes:
- StopForumSpam. Este plugin abre la posibilidad de descargarse una lista de IPs que habitualmente se usan para publicar spam en webs de terceros, como mi wiki. La lista se actualiza periódicamente, por lo que tienes que descargarla periódicamente. Pero en tu servidor web puedes automatizar este proceso con un script y despreocuparte.
- ConfirmEdit. Se configura para que si un usuario no registrado modifica algo, tenga que rellenar un captcha antes de salvar las modificaciones. En mi caso puse preguntas a las que hay que dar una respuesta. Aquí tienes cómo hacer correctamente las preguntas antispam.
- QuestyCaptcha, forma parte de ConfirmEdit. Permite que ConfirmEdit pueda hacer preguntas como las que he mencionado en el punto anterior y ante qué acciones concretas debe pedirlas (creación, edición, si se añaden URLs, etc).
- wgDnsBlackListUrls no lo he configurado. Una lista negra de DNS que suelen usarse para spam. Hay también una base de datos con un listado de estas DNS.
Lo único de momento que no puede hacerse sin registrarse como usuario es la creación de páginas nuevas. Si se pueden modificar o discutir. Si veo que va bien todo esto, habilitaré esos permisos también.