防盗链
基本概念
防盗链是指:防止别的网站直接引用你服务器上的资源(图片、视频、文件等),从而消耗你的带宽。
例如,A 网站图片地址是:
js
https://a.com/images/1.jpgB 网站直接在页面中写:
js
<img src="https://a.com/images/1.jpg" />用户访问 B 网站时,图片却从 A 网站服务器加载 —— 这就是“盗链”。
反盗链
浏览器请求资源时请求头会带上请求来源:
js
Referer: https://b.com/page.html服务器可以判断:
- 如果 Referer 是自己域名 → 允许
- 如果不是 → 拒绝
Referer
Referer 是 HTTP 请求头中的一个字段,用来表示:当前请求是从哪个页面跳转或发起的。
受浏览器安全机制影响,Referer 属于 受保护请求头(Forbidden Header),浏览器禁止通过 JS 修改。
但是我们可以在服务器端更改Referer,服务器作为客户端去请求别人
警告
如果你是直接从地址栏访问该静态资源,那么这个请求的 Referer 会是空的。只有如果页面访问的静态资源才有Referer:
<img src="localhost:3000/assets/image.png" alt="Image">