简单版本 referer_module

  • valid_referers

http://nginx.org/en/docs/http/ngx_http_referer_module.html#valid_referers

Syntax: **valid_referers**none` blocked server_names _string_ …;`
Default:
Context: server, location
Desc: 设置是否可访问资源;
指定 Referer 请求头会导致嵌入变量 $invalid_referer 为空,否则,会被设置为 1
Params:
- none : 请求头中缺少 Referer 字段;
- blocked : 请求头中存在 Referer 字段,但其值已被防火墙或代理服务器删除;这些值是不以 http://https:// 开头的字符串;
- server_name : 定义服务器名称和可选的URI前缀。服务器名称的开头或结尾可以有 * 。检查时,忽略 Referer 字段中的服务器端口;如果是正则表达式,那么正则表达式第一个符号应为~。应该注意的是,表达式将与以 http://https:// 开头的文本匹配。
  • 内嵌变量 $invalid_referer
    • 空值。如果 Referer 请求头被视为有效,会被设置为 1

secure_link_module todo

  • 默认未编译进 nginx

    方式

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

流程

  • 为资源生成一个加密验证 token 和过期时间戳 expires

指令

  • secure_link | Syntax: | **secure_link**expression; | | :—- | —- | | Default: | — | | Context: | http, server, location |
  • secure_link_md5 | Syntax: | **secure_link_md5**expression; | | :—- | —- | | Default: | — | | Context: | http, server, location |