1,307   Nginx

一,原理简介:

Nginx的ngx_http_referer_module可以限制非法的Referer请求,达到防盗链的效果;

Nginx这个功能只是对正常的浏览器访问起作用,如果是伪造Referer攻击是完全无能为力的;

而且有部分浏览器可能不会自动传送Referer

 

二,配置过程

1,Nginx配置,记得重启nginx

        location ~ .*\.(gif|jpg|jpeg|png)$ {       
                valid_referers none blocked server_names *.luckybird.me;
                if ($invalid_referer) {
                        return 403;
                }
                root /images;
                expires  30d;
        }

valid_referers验证referers,如果不满足则设置$invalid_referer为1
none 表示referer可以为空
blocked 表示经过代理或者防火墙删除的请求头,依然有效
server_names 请求头包含某个虚拟主机名;有两种形式
任意字符串
定义一个服务器名和可选的URI前缀。服务器名允许在开头或结尾使用“*”符号。 当nginx检查时,“Referer”请求头里的服务器端口将被忽略。
正则表达式
必须以“~”符号作为开头。 需要注意的是表达式会从“http://”或者“https://”之后的文本开始匹配。

 

2,为了保证大部分浏览器能自动传送Referer,在所有网页头部加上这句话

 <meta name="referrer" content="always">



Leave a Reply

Your email address will not be published. Required fields are marked *