跳至主要內容

防盗链

刘春龙原创...大约 1 分钟LinuxNginxWEB服务器教程文档

内容不在自己的服务器上,通过技术手段将其他网站的内容(比如一些音乐、图片、软件的下载地址)放置在自己的网站中,通过这种方法盗取其他网站的空间和流量。

为了防止第三方引用链接访问我们的图片,消耗服务器资源和网络流量,我们可以在服务器上做防盗链限制。

首要方式:区别那些请求是非正常的用户请求。

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.jpgopen in new window 进行查看该图片

但是,其他人如果使用就访问不到了: 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