У меня установлена Discourse, и я ею очень доволен. Недавно спамеры нашли способы обхода встроенной защиты от спама. Проблема в том, что они размещают изображения в своих сообщениях, а затем сразу же встраивают эти изображения в спам-рассылки, которые отправляют тысячам людей. Даже если я удаляю сообщения, эти изображения, похоже, остаются доступными ещё довольно долгое время.
Это привело к нескольким жалобам на спам от моего хостинг-провайдера.
В настоящее время я отключил загрузку изображений для новых пользователей, но так как это форум поддержки, это не очень хорошее решение. Люди часто нуждаются в том, чтобы добавлять скриншоты и прочее в свои первые сообщения.
Нашёл ли кто-нибудь рабочее решение этой проблемы?
Я уже пытался раскомментировать команду valid_referers для ^/uploads, но, похоже, это ничего не даёт. Изображения всё ещё можно встраивать:
location ~ ^/uploads/ {
# NOTE: it is really annoying that we can't just define headers
# at the top level and inherit.
#
# proxy_set_header DOES NOT inherit, by design, we must repeat it,
# otherwise headers are not set correctly
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;
## optional upload anti-hotlinking rules
valid_referers folivora.ai *.folivora.ai *.llo.ai;
if ($invalid_referer) { return 403; }
# custom CSS
location ~ /stylesheet-cache/ {
add_header Access-Control-Allow-Origin *;
try_files $uri =404;
}
# this allows us to bypass rails
location ~* \.(gif|png|jpg|jpeg|bmp|tif|tiff|ico||avif)$ {
add_header Access-Control-Allow-Origin *;
try_files $uri =404;
}
# SVG needs an extra header attached
location ~* \.(svg)$ {
}
# thumbnails & optimized images
location ~ /_?optimized/ {
add_header Access-Control-Allow-Origin *;
try_files $uri =404;
}
proxy_pass http://discourse;
break;
}
Кажется, если отредактировать пост, чтобы удалить изображение (чтобы оно не входило в последнюю версию поста, удалённого или иного рода), и также установить параметр clean orphan uploads grace period hours на минимальное значение — 1 час, — это может ускорить удаление.
Однако это не идеальное решение для данной ситуации, ни с точки зрения удобства, ни с точки зрения оперативности.
Я уже установил таймер на один час, но они всё равно очень быстро рассылают спам-письма…
Подскажите, поможет ли использование S3 вместо моего собственного сервера для загрузки файлов решить эту проблему? Возможно, есть способ разрешить просмотр загруженных изображений только авторизованным пользователям?
Я думаю, что это удаляет сообщения, а загрузка файлов обрабатывается аналогичным образом с использованием параметра clean orphan uploads grace period hours.
Также существует встроенная задержка в 5 минут между мягким удалением и постоянным удалением одним и тем же администратором (хотя второй администратор не столкнется с такой же задержкой).
Да. И как сказал выше другой человек, нужно подождать 5 минут. Просто используйте другую учётную запись администратора, чтобы сделать это мгновенно. Это навсегда удалит изображение.
Я думаю, что в вашей конфигурации NGINX что-то не так. Когда я пытаюсь открыть изображение с вашего форума в новой вкладке, оно загружается без проблем, хотя не должно, так как я не передавал referer
Если вы исправите это, это решит большинство ваших проблем со спамом, так как спамеры не смогут делать прямые ссылки на изображения вашего форума.