我有一个 Discourse 安装,并且非常满意。最近,垃圾邮件发送者找到了绕过内置垃圾邮件防护的方法。问题是,他们在帖子中发布图片,然后立即将这些图片嵌入到他们发送给成千上万人的垃圾邮件中。即使我删除了帖子,这些图片似乎仍然可以访问相当长一段时间。
这导致我的主机收到了垃圾邮件滥用投诉。
目前,我已经禁用了新用户上传图片的功能,但由于这是一个支持论坛,这并不是一个很好的解决方案。人们经常需要在他们的第一个帖子中添加一些截图等内容。
有人找到解决这个问题的可行方法吗?
我已经尝试过取消注释 ^/uploads 的 valid_referers 命令,但似乎没有任何效果。图片仍然可以被嵌入:
location ~ ^/uploads/ {
# 注意:我们无法在顶层定义标头并继承,这非常烦人。
#
# proxy_set_header 是按设计不继承的,我们必须重复它,
# 否则标头设置不正确。
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;
## 可选的上传防盗链规则
valid_referers folivora.ai *.folivora.ai *.llo.ai;
if ($invalid_referer) { return 403; }
# 自定义 CSS
location ~ /stylesheet-cache/ {
add_header Access-Control-Allow-Origin *;
try_files $uri =404;
}
# 这允许我们绕过 rails
location ~* \.(gif|png|jpg|jpeg|bmp|tif|tiff|ico||avif)$ {
add_header Access-Control-Allow-Origin *;
try_files $uri =404;
}
# SVG 需要附加额外的标头
location ~* \.(svg)$ {
}
# 缩略图和优化图像
location ~ /_?optimized/ {
add_header Access-Control-Allow-Origin *;
try_files $uri =404;
}
proxy_pass http://discourse;
break;
}