Tengo una instalación de Discourse y estoy muy contento con ella. Recientemente, los spammers han encontrado formas de eludir la protección contra spam integrada. El problema es que publican imágenes en sus publicaciones y luego incrustan inmediatamente estas imágenes en correos electrónicos de spam que envían a miles de personas. Incluso si elimino las publicaciones, estas imágenes parecen permanecer disponibles durante bastante tiempo.
Esto ha llevado a algunas quejas de abuso de spam por parte de mi proveedor de alojamiento.
Actualmente, he deshabilitado la carga de imágenes para nuevos usuarios, pero como es un foro de soporte, esta no es una solución muy agradable. La gente a menudo necesita agregar capturas de pantalla, etc., a sus primeras publicaciones.
¿Alguien ha encontrado una solución viable para este problema?
Ya he intentado descomentar el comando valid_referers para ^/uploads, pero no parece hacer nada. Las imágenes aún se pueden incrustar:
location ~ ^/uploads/ {
# NOTA: es realmente molesto que no podamos definir encabezados
# en el nivel superior y heredarlos.
#
# proxy_set_header NO hereda, por diseño, debemos repetirlo,
# de lo contrario, los encabezados no se establecen correctamente
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Request-Start "t=${msec}";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $thescheme;
proxy_set_header X-Sendfile-Type X-Accel-Redirect;
proxy_set_header X-Accel-Mapping $public/=/downloads/;
expires 1y;
add_header Cache-Control public,immutable;
## reglas opcionales de anti-hotlinking de carga
valid_referers folivora.ai *.folivora.ai *.llo.ai;
if ($invalid_referer) { return 403; }
# CSS personalizado
location ~ /stylesheet-cache/ {
add_header Access-Control-Allow-Origin *;
try_files $uri =404;
}
# esto nos permite evitar rails
location ~* \.(gif|png|jpg|jpeg|bmp|tif|tiff|ico||avif)$ {
add_header Access-Control-Allow-Origin *;
try_files $uri =404;
}
# SVG necesita un encabezado adicional adjunto
location ~* \.(svg)$ {
}
# miniaturas e imágenes optimizadas
location ~ /_?optimized/ {
add_header Access-Control-Allow-Origin *;
try_files $uri =404;
}
proxy_pass http://discourse;
break;
}
Creo que si editas la publicación para eliminar la imagen, de modo que no se incluya en la última versión de una publicación (eliminada o de otro tipo), y también estableces clean orphan uploads grace period hours en el mínimo de 1 hora, eso podría acelerar la eliminación.
Sin embargo, no es una solución ideal para esto, ni por facilidad de uso ni por inmediatez.
Ya lo he configurado en una hora, pero son muy rápidos enviando sus correos de spam…
¿Sabes si usar S3 en lugar de mi propio servidor para las cargas resolvería el problema? ¿Hay quizás alguna forma de permitir solo a los usuarios registrados ver las imágenes subidas?
Creo que elimina las publicaciones y las cargas se gestionan de manera similar al método anterior utilizando clean orphan uploads grace period hours.
También hay un retraso incorporado de 5 minutos entre la eliminación suave y la eliminación permanente por el mismo administrador (aunque un segundo administrador no enfrentaría la misma espera).
Sí. Y como dijo el otro tipo de arriba. Hay que esperar 5 minutos. Simplemente usa otra cuenta de administrador para hacerlo al instante. Borrará la imagen permanentemente.
Creo que algo anda mal con tu configuración de NGINX. Cuando intento abrir una imagen de tu foro en una nueva pestaña, se carga bien aunque no debería, ya que no he pasado ningún referer
Si consigues que funcione, resolverá la mayoría de tus problemas de spam, ya que no podrán enlazar directamente a ninguna de las imágenes de tu foro.