防盗链
原创...大约 1 分钟
内容不在自己的服务器上,通过技术手段将其他网站的内容(比如一些音乐、图片、软件的下载地址)放置在自己的网站中,通过这种方法盗取其他网站的空间和流量。
为了防止第三方引用链接访问我们的图片,消耗服务器资源和网络流量,我们可以在服务器上做防盗链限制。
首要方式:区别那些请求是非正常的用户请求。
HTTP Referer 是 header 的一部分,当浏览器向 web 服务器发送请求的时候,一般会带上 Referer,告诉服务器我是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理。比如从我主页上链接到一个朋友那里,他的服务器就能够从 HTTP Referer 中统计出每天有多少用户点击我主页上的链接访问他的网站。
语法结构:
valid_referers none blocked 192.168.66.100;
if ($invalid_referer) {
return 403;
}
参数:
none : 允许没有 http_refer 的请求访问资源;
blocked : 允许不是 http://开头的
,不带协议的请求访问资源;
192.168.66.100: 只允许指定 ip 来的请求访问资源;
server {
listen 80;
server_name localhost;
location ~* .*\.(jpg|png)$ {
valid_referers none blocked 47.92.214.203;
if ($invalid_referer) {
return 403;
}
}
location / {
root html;
}
}
现在你可以通过访问 http://47.92.214.203/pic.jpg 进行查看该图片
但是,其他人如果使用就访问不到了: GET http://47.92.214.203/pic.jpg 403 (Forbidden)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<img src="http://47.92.214.203/pic.jpg" alt="" />
</body>
</html>
Powered by Waline v2.15.7