gpt4 book ai didi

authentication - Nginx:通过比较 header 值和文件内容来授予访问权限;可能的?

转载 作者:行者123 更新时间:2023-12-04 06:42:50 26 4
gpt4 key购买 nike

我想通过将自定义 header 值与文件中的条目进行比较来限制对某些静态 文件的访问。基本上,我想在另一个(受限)应用程序中生成这样的 token ,并让 Nginx 拒绝所有具有不匹配 header 和 header 值( token )的请求。

到目前为止,我读到的是 HttpLuaModule可以通过编写 Lua 代码来扩展 Nginx。但我不知道我的想法是否会成功。

那么,是否有使用标准 nginx 模块(首选)的简单解决方案?还是通过重新安装/编译包含前面提到的模块的 nginx 来安装 Lua 模块是我唯一的机会?

最佳答案

你可以通过 lua 轻松地做到这一点。查看 lua-nginx-module 的文档,正如 aaki 所提到的。您只需要在获取请求阶段插入您的逻辑,例如:

location / {
lua_need_request_body on;

client_max_body_size 100k;
client_body_buffer_size 100k;

access_by_lua '
-- check the client IP address is in our black list
if ngx.var.remote_addr == "132.5.72.3" then
ngx.exit(ngx.HTTP_FORBIDDEN)
end

-- check if the request body contains bad words
if ngx.var.request_body and
string.match(ngx.var.request_body, "fsck")
then
return ngx.redirect("/terms_of_use.html")
end

local f = io.open("/tmp/foo")
local token = f:read("a")
local user_token = ngx.req.get_headers()["user-session-token"]

if not user_token or user_token ~= token then
ngx.exit(ngx.HTTP_FORBIDDEN)
end

-- tests passed
';

# proxy_pass/fastcgi_pass/etc settings/proceed the request and so on
}

关于authentication - Nginx:通过比较 header 值和文件内容来授予访问权限;可能的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26306825/

26 4 0
文章推荐: internet-explorer-8 - knockout.js:在 Internet Explorer 8 中对