Nginx学习笔记——Secure_link模块

作用

(1)指定并允许检查请求的链接的真实性以及保护资源免遭未经授权的访问
(2)限制链接生效周期

配置语法

Syntax:secure_link expression;
Default:默认无
Context:http,server,location

Syntax:secure_link_md5 expression;
Default:默认无
Context:http,server,location

测试配置

新建/etc/nginx/conf.d/test_safe_down.conf,内容如下

	root /opt/app/code;

    location / {
        secure_link $arg_md5,$arg_expires;
        secure_link_md5 "$secure_link_expires$uri shen";

        if ($secure_link = ""){
            return 403;
        }
        if ($secure_link = "0"){
            return 410;
        }
    }

注:
(1)secure_link模块将取到参数名为md5和参数名为expires两个值。
(2)secure_link_md5将使用secure_link_expires的值和uri的值与后面的加密串shen进行加密。
(3)若$secure_link非空或者不为0,则可以进行下载。

增加下载源

/opt/app/code/download/,增加一个文件供下载使用,如file.img。

模拟Tomcat等后端产生一个下载链接

使用一个Shell脚本生成,内容如下:

#!/bin/sh
#
servername="192.168.174.132/"
download_file="/download/file.img"
time_num=$(date -d "2018-11-11 00:00:00" +%s)
secret_num="shen"

res=$(echo -n "${time_num}${download_file} ${secret_num}"|openssl md5 -binary | openssl base64 | tr +/ -_ | tr -d =)

echo "http://${servername}${download_file}?md5=${res}&expires=${time_num}"

显示http://192.168.174.132//download/file.img?md5=dFHI-J2vxRljIKizG8G9pA&expires=1541923200

测试

复制该链接,浏览器可以进行下载,此处是模拟后台生成的一个下载链接,这些操作其实都是在服务器后台执行的,只有后台才知道加密串"shen"和过期时间(expires)等。

链接修改md5或者expires其中任何一个,都会出现禁止访问。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值