Tenho uma instalação do Discourse e estou muito feliz com ela. Recentemente, spammers encontraram maneiras de contornar a proteção contra spam integrada. O problema é que eles postam imagens em suas postagens e, em seguida, incorporam imediatamente essas imagens em e-mails de spam que enviam para milhares de pessoas. Mesmo que eu exclua as postagens, essas imagens parecem permanecer disponíveis por um bom tempo.
Isso levou a algumas reclamações de abuso de spam do meu provedor.
Atualmente, desativei o upload de imagens para novos usuários, mas, como é um fórum de suporte, essa não é uma solução muito agradável. As pessoas geralmente precisam adicionar capturas de tela, etc., às suas primeiras postagens.
Alguém encontrou uma solução viável para este problema?
Já tentei descomentar o comando valid_referers para ^/uploads, mas ele não parece fazer nada. As imagens ainda podem ser incorporadas:
location ~ ^/uploads/ {
# NOTA: é muito chato que não possamos apenas definir cabeçalhos
# no nível superior e herdar.
#
# proxy_set_header NÃO herda, por design, devemos repeti-lo,
# caso contrário, os cabeçalhos não são definidos corretamente
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;
## regras opcionais de anti-hotlinking de upload
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;
}
# isso nos permite contornar o rails
location ~* \.(gif|png|jpg|jpeg|bmp|tif|tiff|ico||avif)$ {
add_header Access-Control-Allow-Origin *;
try_files $uri =404;
}
# SVG precisa de um cabeçalho extra anexado
location ~* \.(svg)$ {
}
# miniaturas e imagens otimizadas
location ~ /_?optimized/ {
add_header Access-Control-Allow-Origin *;
try_files $uri =404;
}
proxy_pass http://discourse;
break;
}
Acho que se você editar a postagem para remover a imagem, para que ela não seja incluída na versão mais recente de uma postagem (excluída ou não), e também definir clean orphan uploads grace period hours para o mínimo de 1 hora, isso pode acelerar a remoção.
No entanto, não é uma solução ideal para isso, nem em termos de facilidade de uso nem de imediatismo.
Já defini para uma hora, mas eles são muito rápidos em enviar seus e-mails de spam…
Você sabe se usar o S3 em vez do meu próprio servidor para uploads resolveria o problema? Existe talvez alguma maneira de permitir a visualização de imagens carregadas apenas para usuários logados?
Eu acho que ele exclui as postagens e os uploads são tratados de forma semelhante ao método acima usando clean orphan uploads grace period hours.
Há também um atraso embutido de 5 minutos entre a exclusão lógica e a exclusão permanente pelo mesmo administrador (embora um segundo administrador não enfrente a mesma espera).
Sim. E como o outro colega acima disse. É preciso esperar 5 minutos. Basta usar outra conta de administrador para fazer isso instantaneamente. Isso excluirá permanentemente a imagem.
Eu acho que há algo errado com sua configuração do NGINX. Quando tento abrir uma imagem do seu fórum em uma nova aba, ela carrega normalmente, embora não devesse, já que não passei nenhum referer
Se você conseguir fazer funcionar, isso resolverá a maioria dos seus problemas com spam, pois eles não poderão fazer hotlink para nenhuma das imagens do seu fórum.