首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NginX:如何重写响应体和头?

NginX:如何重写响应体和头?
EN

Server Fault用户
提问于 2021-12-25 10:48:16
回答 1查看 894关注 0票数 0

上下文

我有一个静态HTML页面的集合(~10k页),它是由一些我无法控制的应用程序生成的。这些页面由NginX从location块提供。

页面可能包含敏感数据。我希望能够阻止页面显示取决于用户身份和页面中的“标志”。

这些标志可以由<meta name=keyword content="flag1 flag2 flagn">元素实现。当存在这样的元素时,应该检查“凭据”。

我的想法是先扫描请求响应,然后再让它返回给用户。为此,我需要

  • 一种将完整响应(标头+正文)传递给某些自定义代码的方法,以便在没有标志的情况下可以解析元素,如果有标志,则返回未更改的,并且用户没有凭据,则要求用户标识自己的,如果有标志,用户有权查看,则返回未更改的,并且用户无权查看,最终返回错误页而不是响应,删除标志<meta>元素以避免漏漏筛选提示。
  • 将当前凭据(用户名、质询值、任何有用的信息,如标识时间戳、…)传递给此用户代码的一些方法

用户代码将依赖包含用户权限和实现超时函数的“数据库”(这个术语并不一定意味着使用真正的DB引擎)。

用户代码能否实现为FastCGI脚本?如果是,那么传递给它完整响应的指令是什么?

初审

目前,用户标识不能有条件:当auth_basiclocation中启用时,用户必须标识自己,甚至是访问公共页面。我可以通过有一个来宾/来宾用户/密码来减轻这一点,但是在请求凭据之前我不能有一个警告页面。

因此,始终需要身份验证。之后,将与请求一起发送一个Authorization: Basic some_hash头。当为将来访问用户的特权属性进行身份验证时,需要捕获此散列。

,我该怎么做?

我知道,在目前的状态下,这个规范根本不提供真正的安全性(易受重放攻击等)。在更进一步之前,我想先做一个概念的证明。我的目标有意义吗?

有更简单的方法来处理吗?XSLT?(尽管当前的用户凭据必须输入到模式中)

EN

回答 1

Server Fault用户

发布于 2021-12-25 13:21:39

我认为实现这一点的唯一方法是使用一些前端控制器来检查访问逻辑需求,然后从磁盘发送HTML文件。

您不会使用来自nginx的任何auth脏词。认证过程将由前端控制器处理。

前端控制器可以通过几种方式来实现,例如Node.JS应用程序、PHP、Rails和Python。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1088199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档