gpt4 book ai didi

nginx - Nginx Lua在proxy_pass之后修改HTML响应

转载 作者:行者123 更新时间:2023-12-04 18:48:11 44 4
gpt4 key购买 nike

我要为PoC进行的操作是向来自动态后端服务器的网页添加href。使用“ subs_filter”可以很容易地添加href,但是我需要使用响应中嵌入的信息来构造href。

是否可以使用LUA处理来自proxy_pass的响应,对其进行修改并返回给请求者(客户端)?

任何和所有建议,欢迎。

下面是我正在查看的代码,现在我对Lua有了更好的了解,并且nginx如何使用它,我发现'body_filter'是正确的方法。但是代码似乎很简单,但是我无法使正则表达式正常工作。

进一步的背景,我试图解析返回的proxy_pass响应,解析它的开始和结束时间,然后构造一个放置在头部的JS脚本URL。

我想对其进行正则表达式的示例响应。

Informações Adicionais
Horário de início: 08H50
Horário de término: 09H14


来自“位置{}”内的代码

body_filter_by_lua '
-- my regex which is validate but doesn't seem to be within LUAJIT
--local from, to, err = ngx.re.find(ngx.arg[1], "(.início: *\d{2}H\d{2})", "jo")
local from, to, err = ngx.re.find(ngx.arg[1], "início", "jo")

replacestr = string.sub(ngx.arg[1], to, 5)

replaceme = "<script></script></head>"
ngx.arg[1] = ngx.re.sub(ngx.arg[1],"</head>", replaceme)
';


例如,将“início”更改为“ head”是可行的,因此我假设它是带有重音符号的字符,但是我找不到对此的确认。

将“início”更改为“ \ d {2} H \ d {2}”失败,出现“ body_filter_by_lua:5:'“'附近的无效转义序列

最佳答案

我发现我在注释中提到的有关'nix.header.content_length'的内容,重要的是nginx和lua需要两次转义,请参见:lua-nginx-module special pcre sequences有关更多详细信息。

重音字符需要标记“ u”添加到“ ngx.re.find”的“ jo”

关于nginx - Nginx Lua在proxy_pass之后修改HTML响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26436891/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com