nginx防盗链 s3防盗链


nginx防盗链

编辑文件:/usr/local/nginx/conf/nginx.conf

location ~* \.(gif|jpg|png|jpeg)$ {
     expires     30d;
     valid_referers none blocked *.abc.com www.abc.com m.abc.com *.baidu.com *.google.com;
     if ($invalid_referer) {
         rewrite ^/ http://www.abc.cn/404.jpg;
         #return 404;
     }
}

以上代码解释如下:

1、location中指定要防篡改的文件类型;

2、valid_referers指定资源访问是通过以下几种方式为合法

none:直接通过url访问,无referer值的情况

blocked:referer值被防火墙修改

servername:指定资源在合法的url中可以被引用,支持*通配符

3、if判断如果用户请求的资源不符合上述配置,那么rewrite重定向到你想指定的url上,也可以配置403权限错误。


s3防盗链

主要是编辑S3的存储桶策略:限制HTTP引用站点和特定IP访问

http://docs.amazonaws.cn/AmazonS3/latest/dev/example-bucket-policies.html


version:AWS存储桶策略的版本,2012-10-17是最新版

statement:声明,可以有多个condition,如下

[plain]  view plain  copy
  1. {  
  2.     "Version": "2012-10-17",  
  3.     "Statement": [  
  4.     {  
  5.         "Sid": "IPAllow",  
  6.         "Effect": "Allow",  
  7.         "Principal": "*",  
  8.         "Action": "s3:*",  
  9.         "Resource": "arn:aws-cn:s3:::examplebucket/*",  
  10.         "Condition": {  
  11.             "IpAddress": {"aws:SourceIp": "54.240.143.0/24"},  
  12.             "NotIpAddress": {"aws:SourceIp": "54.240.143.188/32"}  
  13.         }  
  14.     },  
  15.     {  
  16.         "Sid": "Allow get requests referred by www.abc.club and abc.club",  
  17.         "Effect": "Allow",  
  18.         "Principal": "*",  
  19.         "Action": "s3:GetObject",  
  20.         "Resource": "arn:aws:s3:::abc/*",  
  21.         "Condition": {  
  22.             "StringLike": {  
  23.                 "aws:Referer": [  
  24.                     "http://www.abc.club/*",  
  25.                     "http://abc.club/*"  
  26.                 ]  
  27.             }  
  28.         }  
  29.     }  
  30.     ]  
  31. }  

确保您使用的浏览器在请求中包含 http referer 标头。(如下)


猜你喜欢

转载自blog.csdn.net/yangyun_1999/article/details/80270539