首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以配置Apache以删除/替换与模式匹配的所有请求头吗?

我可以配置Apache以删除/替换与模式匹配的所有请求头吗?
EN

Server Fault用户
提问于 2020-01-23 19:18:14
回答 1查看 2.3K关注 0票数 2

我使用Apache作为web应用程序前面的反向代理。身份验证由一个模块(mod_auth_mellon)执行,该模块设置各种请求环境变量,其中包含身份验证用户的详细信息(用户名、显示名称等)。

我使用mod_headers从传入请求中删除标头,并将它们替换为mod_auth_mellon设置的请求环境变量的值。

代码语言:javascript
复制
RequestHeader unset mellon_uid
RequestHeader set mellon_uid "%{mellon_uid}e" env=mellon_uid

因此,任何客户端提供的mellon_uid头都会被丢弃。如果mod_auth_mellon认为用户已登录,则向发送到web应用程序的请求中添加一个新的mellon_uid请求头。

到目前为止,我已经通过使用mod_macro实现了这一管理:

代码语言:javascript
复制
Use Attribute uid
Use Attribute display_name
Use Attribute email

..。依此类推,其中Attribute是一个宏,它扩展到上面提供的属性的两个RequestHeader指令。

但是,有些用户详细信息是多值的,mod_auth_mellon为此设置表单的多个请求环境变量:

代码语言:javascript
复制
mellon_foo_0 = first
mellon_foo_1 = second
mellon_foo_2 = third
mellon_foo_N = 3

由于属性的值数目可能有所不同,所以我不能依赖于这样的静态变量列表来处理。

我想避免使用MellonMergeEnvVars,它将设置以下内容:

代码语言:javascript
复制
mellon_foo = first;second;third
mellon_foo_N = 3

..。因为这意味着web应用程序现在必须处理正确解析mellon_foo请求头的复杂性,处理本身包含分号的值,等等。实际上,我不清楚mod_auth_mellon是否执行任何转义,这使得不可能进行明确的解析(如果我是对的.)

EN

回答 1

Server Fault用户

发布于 2020-07-31 13:53:23

我认为,只要您只看第一个mellon_foo_N值,这里就不应该有任何风险,因为mod_auth_mellon总是会自行设置这些值,覆盖用户可能试图发送的任何值。它也应该总是设置mellon_foo_N,但是您可以在一开始就取消它以确定。

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

https://serverfault.com/questions/1000154

复制
相关文章

相似问题

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