小知识:Nginx防盗链的3种方法

一:一般的防盗链如下: 

复制代码代码如下:

location ~* .(gif|jpg|png|swf|flv)$ { 

valid_referers none blocked www.tuohang.net tuohang.net ; 

if ($invalid_referer) { 

rewrite ^/ //www.tuohang.net/retrun.html; 

#return 403; 

第一行:gif|jpg|png|swf|flv  表示对gif、jpg、png、swf、flv后缀的文件实行防盗链  第二行: 表示对www.ingnix.com这2个来路进行判断  if{}里面内容的意思是,如果来路不是指定来路就跳转到//www.tuohang.net/retrun.html页面,当然直接返回403也是可以的。  二:针对图片目录防止盗链 

复制代码代码如下:

location /images/ { 

alias /data/images/; 

valid_referers none blocked server_names *.xok.la xok.la ; 

if ($invalid_referer) {return 403;} 

三:使用第三方模块ngx_http_accesskey_module实现Nginx防盗链  实现方法如下: 

实现方法如下:

1. 下载NginxHttpAccessKeyModule模块文件:Nginx-accesskey-2.0.3.tar.gz

2. 解压此文件后,找到nginx-accesskey-2.0.3下的config文件。编辑此文件:替换其中的”$HTTP_ACCESSKEY_MODULE”为”ngx_http_accesskey_module”;

3. 用一下参数重新编译nginx:

./configure –add-module=path/to/nginx-accesskey

4. 修改nginx的conf文件,添加以下几行:

location /download {

  accesskey             on;

  accesskey_hashmethod  md5;

  accesskey_arg         “key”;

  accesskey_signature   “mypass$remote_addr”;

}

其中:

accesskey为模块开关;

accesskey_hashmethod为加密方式MD5或者SHA-1;

accesskey_arg为url中的关键字参数;

accesskey_signature为加密值,此处为mypass和访问IP构成的字符串。

访问测试脚本download.php:

$ipkey= md5(“mypass”.$_SERVER[REMOTE_ADDR]);

$output_add_key=”download_add_key“;

$output_org_url=”download_org_path“;

echo $output_add_key;

echo $output_org_url;

?>

访问第一个download_add_key链接可以正常下载,第二个链接download_org_path会返回403 Forbidden错误。

参考:

NginxHttpAccessKeyModule
声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:compress与uncompress参数使用

2023-5-18 1:58:11

建站知识

小知识:bzip2 bunzip2 bzcat参数使用

2023-5-18 2:06:23

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索