如何在不慢的情况下在Web服务之前检查入口数据?

时间:2019-06-11 05:49:27

标签: nginx asp.net-core middleware kestrel-http-server

我想在API之前检查所有入口数据中的某些字符。 我签入了中间件,但它使API变慢。 我的意思是:

1个客户端发送请求=> 2 NGINX => 3个Kestrel => 4个中间件=> 5个代码

我想在代码之前检入步骤。我使用.net core 2.2

谢谢

1 个答案:

答案 0 :(得分:0)

我想检查请求正文以删除多余的空间并检查波斯字符。 我是用Lua做到这一点的,我跟NGINX称呼它。

    local string_format = string.format
    ngx.req.read_body()
    local body = ngx.req.get_body_data() or ""
   -- Replace 'Ye' and 'Kaf' arabic char with persian
   body = ngx.re.gsub(body, "ي", "ی") -- remove id and name
   body = ngx.re.gsub(body, "ك", "ک") -- remove id and name
   -- Remove useless space
   body = ngx.re.gsub(body, "  ", " ") -- remove id and name
   body = ngx.re.gsub(body, '" ', '"') -- remove id and name
   body = ngx.re.gsub(body, ' "', '"') -- remove id and name
   ngx.req.set_body_data(body)

在上面,我检查正文并用适当的数据替换它,然后再次设置正文。

希望对其他人有帮助。