项目产品
图床 / 图片外链 / 6 分钟阅读

图床存储桶的图片公开访问怎么设置避免恶意盗链

一、结论

设置图床存储桶图片公开访问并避免恶意盗链,核心逻辑是先配置存储桶的公共读权限保障合法访问,再通过Referer白名单、访问频率限制、签名URL三类规则拦截非法请求;如果使用兼容S3协议的对象存储服务,需要提前准备Endpoint、AccessKey、SecretKey、Bucket、Region等信息,后续可直接在图床程序或云服务控制台完成全流程配置。

二、准备工作

操作前需要提前准备以下内容:

  • 对象存储服务的有效账号
  • 已创建的专门用于存放图床资源的存储桶Bucket
  • 服务提供的Endpoint地址、AccessKey、SecretKey、Region信息
  • 支持S3协议的管理工具,如服务官方控制台、PicGo图床上传工具、自建图床系统后台
  • 已备案的自有访问域名(如使用自定义域名访问图床资源)
  • 提前整理好的允许访问图片的白名单域名列表,如个人站点、博客、内容管理系统的域名

三、操作步骤

1. 登录对象存储控制台或打开S3兼容管理客户端,找到对应图床存储桶的权限配置页面,开启存储桶的公共读权限,同时关闭公共写权限,操作完成后存储桶内的图片文件可以被公网通过完整链接直接访问,但外部用户无法随意上传、修改或删除存储桶内的文件,避免恶意文件被上传到你的图床。

2. 在存储桶安全配置板块找到防盗链配置模块,选择开启Referer防盗链规则,填写提前整理好的允许访问的白名单域名,同时根据自身需求勾选是否允许空Referer访问(如果需要直接在浏览器打开图片、或本地调试工具需要访问图床可开启,无相关需求则关闭以提升安全性),保存配置后只有白名单内的域名发起的图片访问请求会被放行,其他陌生域名的请求会直接被拦截。

3. 进入访问控制配置页面,配置访问频率限制规则,针对单IP的单位时间访问次数、单时间段内的总请求量设置合理阈值,超出阈值的请求直接返回403或429状态码,配置完成后可以拦截批量爬虫、恶意刷流量的请求,避免流量被过度消耗产生额外成本。

4. 如果有更高的安全需求,可以关闭存储桶的永久公开访问权限,改用带过期时间的签名URL访问图片,在你使用的PicGo、WordPress、Halo等对接程序中开启S3签名URL生成配置,设置合理的有效期,配置完成后所有图片访问链接都有固定有效期,过期后自动失效,从根源上避免盗链链接被长期传播。

5. 将配置好的S3接入信息填写到你使用的图床程序、内容管理系统中,如果你使用Cloudreve、Alist这类网盘或资源管理程序对接,直接在存储源配置里选择S3兼容存储,填写对应参数即可,保存配置后上传一张测试图片,分别从白名单域名、非白名单域名、直接访问三种场景测试访问情况,确认符合规则的请求可以正常加载图片,非法请求返回拦截状态码即代表配置生效。

四、常见错误

  • Referer白名单格式填写错误,比如漏写http/https前缀、多写了末尾的斜杠,导致白名单规则不生效,解决建议是按照控制台提示的格式填写,同时把带www和不带www的域名、本地调试域名都加入白名单,避免正常访问被拦截。
  • 开启防盗链后关闭了空Referer访问,导致自己在图床管理工具、浏览器直接打开图片时被拦截,解决建议是如果有直接访问图片的需求,保留允许空Referer的选项,或者仅在高安全需求场景下关闭。
  • 存储桶权限配置错误,要么误开了公共写权限导致恶意文件上传,要么公共读权限没开导致合法请求也无法访问图片,解决建议是只开启公共读权限,同时通过IAM策略限制AccessKey的权限范围,仅保留文件上传、读取的必要权限,避免密钥泄露后带来的安全风险。
  • 签名URL的过期时间设置不合理,过短导致正常用户打开页面时图片已经失效,过长则起不到防盗链效果,解决建议是根据业务场景设置,普通网站图床可以设置1-24小时的有效期,静态资源类可以适当延长。
  • 配置完规则后没有清理CDN缓存,导致之前的盗链请求仍然可以通过CDN节点访问,解决建议是配置完防盗链规则后,提交对应域名的缓存刷新任务,确保规则立即生效。

五、示例说明

以下为通用配置示例,可根据你使用的服务实际要求调整:

  • Endpoint:填写你使用的对象存储服务提供的对应区域访问地址
  • AccessKey:填写你在服务控制台生成的具有存储桶读写权限的访问密钥ID
  • SecretKey:填写与AccessKey对应的密钥凭证
  • Bucket:填写用于存放图床图片的存储桶名称
  • Region:根据服务要求填写对应存储桶所在的区域标识
  • Referer白名单:https://yourdomain.com、https://www.yourdomain.com、*://localhost:*(本地调试用)
  • 允许空Referer:是/否(根据自身需求选择)
  • 单IP访问频率限制:10秒内最多请求100次(可根据业务调整)
  • 签名URL有效期:2小时(可根据业务调整)

六、更简单的方案

如果你不想自己搭建MinIO这类私有对象存储、不想手动维护服务器和复杂的权限规则,也可以直接选择成熟的兼容S3协议的云对象存储服务,这类服务通常已经内置了可视化的防盗链配置模块,不需要自己写规则或维护底层存储架构,开箱即可使用,能大幅降低图床搭建的运维成本。如果你需要一个兼容S3协议、适合图床搭建、资源下载分发、程序接入的对象存储服务,可以了解 七彩云对象存储,它支持一键配置Referer防盗链、访问频率限制等功能,适合需要低门槛搭建安全图床的站长和开发者使用。

七、FAQ

1. 设置了Referer防盗链之后,还是有盗链请求怎么办?

首先检查是否开启了允许空Referer的选项,如果开启的话可以尝试关闭,或者搭配访问频率限制、UA黑名单规则一起使用,同时可以定期查看访问日志,把异常的IP段加入拦截名单;如果是高价值图片,可以改用签名URL的访问方式,彻底避免盗链。

2. 开启签名URL之后,会不会影响网站的SEO收录?

如果设置的签名URL有效期超过搜索引擎爬虫的抓取周期,通常不会影响收录,也可以单独配置搜索引擎UA的白名单,允许爬虫无需签名即可访问图片,兼顾安全性和收录需求。

3. 我的图床用了CDN加速,防盗链规则应该配置在存储桶还是CDN上?

建议两边都配置,CDN层的防盗链可以在边缘节点直接拦截盗链请求,减少回源流量消耗,存储桶层的防盗链作为兜底,避免用户绕过CDN直接访问存储桶地址盗链。

4. 开启公共读权限会不会导致存储桶内的所有文件都被公开遍历?

不会,只要你没有开启存储桶的目录列表权限,外部用户只能通过完整的文件路径访问对应图片,无法遍历整个存储桶的文件列表,你也可以通过IAM策略进一步限制文件的访问范围,提升存储安全性。

八、总结

整体操作流程可以概括为准备S3接入信息、配置存储桶公开访问权限、配置防盗链和访问限制规则、对接业务程序、测试生效五个步骤,适合个人站长搭建博客图床、开发者搭建自用或商用图床系统、资源站管理静态图片资源等场景使用;你可以根据自身的安全需求和业务规模,选择自行搭建私有对象存储或者使用云对象存储服务,灵活调整防盗链规则的严格程度,在保障访问体验的同时避免恶意盗链带来的流量损失和资源浪费。

想进一步了解这个项目?

访问官网查看产品能力、适用场景和最新服务信息。

访问官网

相关文章

图床 / 图片外链 / / 8 分钟阅读

个人博客上传图片后怎么生成可直接外链调用的图片直链

个人博客上传图片后生成可直接外链调用的图片直链,通常的做法是:先准备一个兼容 S3 协议的对象存储服务和存储桶,再在 PicGo、博客插件或博客后台中填写 Endpoint、AccessKey、SecretKey、Bucket、Region 等信息,连接成功后上传图片,最后获取对象的公开访问地址或临时签名地址。将该地址填入 Markdown 图片、文章封面或

图床 / 图片外链 / / 8 分钟阅读

个人博客与素材站配图场景下怎么生成稳定可用的图片外链?

一、结论 个人博客与素材站生成稳定可用图片外链的核心思路,是将配图统一存储到支持S3协议的对象存储服务中,再通过兼容S3的上传工具、博客插件或站点程序对接,生成固定可公开访问的图片链接。接入前通常需要提前准备好Endpoint、AccessKey、SecretKey、Bucket、Region等信息,在对应客户端或程序后台填写后测试连通即可使用。

图床 / 图片外链 / / 8 分钟阅读

低成本图床存储从哪里省钱?图片外链和素材图床的费用构成与选择

一、结论 低成本图床存储不能只对比存储容量单价,需要结合存储规模、图片请求量、外链下载流量、访问频率及业务场景综合核算总成本。对于对外提供公共访问的图床、素材站类业务,下载流量和请求成本的影响往往高于存储成本,需要优先匹配计费规则与自身业务模式相符的服务。

图床 / 图片外链 / / 10 分钟阅读

不限流量图床是什么?博客与电商图片外链场景的基础介绍

一、结论 不限流量图床是一类提供图片存储与外链引用能力,且不对图片被访问加载产生的公网下行流量设置额度、不按流量用量单独计费的图片托管服务,大多基于兼容S3协议的云对象存储搭建。它主要解决博客、电商等场景下图片占用自有服务器存储与带宽资源、突发流量成本不可控的问题,适合需要长期稳定对外提供图片访问的站长、开发者与项目方使用。

图床 / 图片外链 / / 9 分钟阅读

PicGo怎么配置对象存储实现图片自动上传和外链生成?分步教程

一、结论 PicGo配置对象存储实现图片自动上传与外链生成的核心操作思路,是先准备好支持S3协议的对象存储的Endpoint、AccessKey、SecretKey、Bucket、Region等接入信息,再在PicGo中选择S3兼容存储类型填写对应参数。完成配置并测试连通后,上传截图、本地图片时就会自动同步到对象存储,并生成可直接引用的公开图片外链。