$secure_link

变量 $secure_link 用于基于哈希令牌验证对资源的安全链接。 — NGINX Core (HTTP)

$secure_link NGINX Core (HTTP)

说明

$secure_link 变量用于在 NGINX 中管理和验证对资源(例如文件或数据)的安全链接,确保基于令牌将访问限制为授权用户。当生成安全链接时,通常会使用包括 document root、URI 和到期时间戳等参数进行哈希。因此,该变量包含客户端用于验证并获取受保护资源访问的此哈希链接的值。 只有在特定条件下该变量才会被设置,尤其是在启用了 secure_link 模块并且在 http、server 或 location 上下文中配置了指定的 `secure_link` 指令时。它通过将提供的令牌与预期的安全链接进行比较来验证请求,确保链接既是有时效性的(仅在特定时段内有效),又对每个客户端是唯一的。该变量的常见值通常反映基于 secure_link 指令配置生成的哈希。 在实践中,这有助于防止对敏感文件的未授权访问,使其适用于需要内容保护的应用场景,例如私有媒体文件或软件下载。为确保平稳运行,除了令牌的生成外,还需要仔细管理它们的过期和停用策略,以提升访问安全性。

配置示例

location /protected_file {
    secure_link $arg_st,$arg_e;
    secure_link_secret your_secret;

    # Validate secure link
    if ($secure_link = "") {
        return 403; # deny access
    }

    # Allow access if validation passes
    root /path/to/your/files;
    add_header Content-Disposition "attachment; filename=protected_file";
}

子系统

http

可缓存

上下文

http, server, location, if

确保安全链接的密钥保持机密;泄露它可能会危及安全。

令牌必须正确生成;传入错误的参数会导致生成无效的安全链接。

始终设置过期时间,以防通过过期的令牌获得无限期访问。