问题如标题所示!
通过http header来判断判断Referer的来源是不是你的网站如果来源不是你的网站,你可以直接返回404错误,或者进行其他处理来源是你的网站可以输出图片
如果你用的是nginx,那可以考虑用location 通配你的图片后缀,根据refer,再决定是否返回图片资源。
又拍云 七牛云 都有防盗链配置
假设没有使用cdn,即需要自己做防盗链。一是对refer做判断看来源是不是自己的网站,如果不是就拒绝,这个适用范围最大,也很容易破解,因为refer可以伪造。第二个是通过session校验,如果不通过特定服务生成cookie和session就不能请求得到资源。这个最保险,因为session在后端。
给图片加水印
最简单的办法,如果你的图片资源放在某些云服务商的对象存储里,直接限制白名单就是了。拿阿里云举例子: