HTTP Referer是Header的一部分,当浏览器向Web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器借此可以获得一些信息用于处理,例如防止未经允许的网站盗链图片、文件等。因此HTTP Referer头信息是可以通过程序来伪装生成的,所以通过Referer信息防盗链并非100%可靠,但是,它能够限制大部分的盗链情况
接下来开始实验,准备两台虚拟机分别做 图片(防盗链)服务器与盗链服务器
记得关闭防火墙
防盗链服务器:192.168.111.8
盗链服务器:192.168.111.7
防盗链服务器配置:
# vim /etc/nginx/conf.d/nginx.conf #子配置文件
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
valid_referers none blocked www.jd.com; #允许这些访问
if ($invalid_referer) {
return 403;
}
}
}
# ls /usr/share/nginx/html/ #前两个文件是本来就存在的,我们添加个图片A.jpeg测试
50x.html index.html A.jpeg
# systemctl restart nginx
盗链服务器配置:
# vim /etc/nginx/conf.d/dl.conf
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html;
}
}
# vim /usr/share/nginx/html/index.html
<html>
<head>
<meta charset="utf-8">
<title>qf.com</title>
</head>
<body style="background-color:red;">
<img src="http://192.168.111.8/A.jpeg"/>
</body>
</html>
# systemctl restart nginx