auth_hash
'auth_hash' 指令在 NGINX 中启用安全链接哈希认证功能,允许使用哈希进行安全链接。
Secure link hash authentication
·
httpserverlocation
语法auth_hash on;
默认值off
上下文http, server, location
参数1
说明
auth_hash 指令启用安全链接哈希认证,允许用户保护通过 NGINX 访问的资源。启用此指令后,NGINX 服务器将基于一条消息计算安全哈希,该消息包含敏感数据(例如 URIs 和密钥),并与时间戳值或过期期限结合。然后将该哈希用作验证请求的令牌,确保只有具有有效令牌的授权请求才能访问受保护的资源。
哈希功能还使用诸如 auth_hash_message 的配置来指定要包含在哈希生成中的确切组件。auth_hash_secret 指令指定用于计算哈希的密钥,而像 auth_hash_algorithm 这样的参数则决定用于哈希的加密算法,该算法可以包含通过 OpenSSL 可用的各种选项。此设置不仅便于创建安全链接,而且通过使用可选参数确定链接有效期的开始和结束,为有效链接施加时间限制,从而加强由 NGINX 提供的 Web 资源的整体安全性。
配置示例
location ^~ /files/ {
auth_hash on;
auth_hash_check_time $arg_ts range_end=$arg_e format=%s;
auth_hash_check_token $arg_st format=hex;
auth_hash_secret "my_secret_key";
auth_hash_message "$uri|$arg_ts|$arg_e|$auth_hash_secret";
auth_hash_algorithm sha256;
if ($auth_hash != "1") {
return 403;
}
rewrite ^/files/(.*)$ /files/$1 break;
}⚠
确保所提供的哈希算法受 OpenSSL 支持,否则该指令将无法计算哈希。
⚠
始终使用安全且复杂的秘密密钥,以防止哈希碰撞或暴力破解攻击。
⚠
注意所使用的日期格式和时间值,以防止无效的哈希计算。