패턴과 일치하는 모든 요청 헤더를 제거/교체하도록 Apache httpd를 구성할 수 있습니까?

패턴과 일치하는 모든 요청 헤더를 제거/교체하도록 Apache httpd를 구성할 수 있습니까?

저는 웹 애플리케이션 앞에서 역방향 프록시로 Apache httpd를 사용하고 있습니다. 인증은 인증된 사용자에 대한 세부 정보(사용자 이름, 표시 이름 등)와 함께 다양한 요청 환경 변수를 설정하는 모듈(mod_auth_mellon)에 의해 수행됩니다.

나는 mod_headers를 사용하여 들어오는 요청에서 헤더를 제거하고 이를 mod_auth_mellon에 의해 설정된 요청 환경 변수의 값으로 바꿉니다.

RequestHeader unset mellon_uid
RequestHeader set mellon_uid "%{mellon_uid}e" env=mellon_uid

따라서 클라이언트가 제공한 mellon_uid헤더는 모두 삭제됩니다. mod_auth_mellon이 사용자가 로그인된 것으로 간주하면 mellon_uid웹 애플리케이션으로 전송되는 요청에 새 요청 헤더가 추가됩니다.

지금까지는 mod_macro를 사용하여 이를 관리 가능하게 만들었습니다.

Use Attribute uid
Use Attribute display_name
Use Attribute email

... 등, 제공된 속성에 대해 위의 Attribute두 지시어로 확장되는 매크로는 어디에 있습니까 ?RequestHeader

그러나 일부 사용자 세부 정보는 다중 값을 가지며, 이에 대해 mod_auth_mellon은 다음 형식의 여러 요청 환경 변수를 설정합니다.

mellon_foo_0 = first
mellon_foo_1 = second
mellon_foo_2 = third
mellon_foo_N = 3

속성 값의 개수는 다양할 수 있으므로 이와 같이 처리하기 위해 정적 변수 목록에 의존할 수는 없습니다.

MellonMergeEnvVars대신 다음을 설정하는 를 사용하지 않고 싶습니다 .

mellon_foo = first;second;third
mellon_foo_N = 3

... 이는 이제 웹 애플리케이션이 요청 헤더를 올바르게 구문 분석하고 세미콜론이 포함된 값 등을 처리하는 복잡성을 처리해야 함을 의미하기 때문입니다. mellon_foo실제로 mod_auth_mellon이 이스케이프를 수행하여 모호하지 않은 구문 분석을 수행하는지 확실하지 않습니다. 불가능하다(내 말이 맞다면...)

답변1

나는 첫 번째 값만 보는 한 mellon_foo_N여기에는 어떤 위험도 없어야 한다고 생각합니다. 왜냐하면 mod_auth_mellon은 항상 해당 값 자체를 설정하여 사용자가 전송하려고 시도하는 모든 값을 재정의하기 때문입니다. 또한 항상 설정되어야 mellon_foo_N하지만 확실하게 하기 위해 처음에는 항상 설정을 해제할 수 있습니다.

관련 정보