Как удалить HTTP-заголовок в Apache, если к нему обращаются с определенного IP?

Как удалить HTTP-заголовок в Apache, если к нему обращаются с определенного IP?

Как мне отключить один или несколько заголовков HTTP, когда к моему сайту обращаются с определенного IP-адреса? Потому что моя конфигурация CSP блокирует правильную загрузку некоторых локальных страниц. Например, если у меня есть phpMyAdmin, но я не могу использовать его локально, потому что установлен CSP.

решение1

Вы можете отключить заголовки в зависимости от IP-адресов, используя эту конфигурацию:

# For single ip address. Change the IP address to your needs
<Directory "/path/to/the/folder/which/needs/to/have/this/feature">
<If "%{REMOTE_ADDR} == '127.0.0.1'">
Header always unset HeaderName
</If>
</Directory>

# For multiple IP addresses, remove the top one, and use this one, and change the IP addresses
# to your needs, and add more '||' to use more IP addresses.
<Directory "/path/to/the/folder/which/needs/to/have/this/feature">
<If "%{REMOTE_ADDR} == '127.0.0.1' || %{REMOTE_ADDR} == '1.2.3.4'">
Header always unset HeaderName
</If>
</Directory>

Убедитесь, что mod_headers включен. Для получения более подробной информации см.https://httpd.apache.org/docs/2.4/mod/core.html#ifиhttps://httpd.apache.org/docs/2.4/expr.html.

Вы можете настроить его в соответствии со своими потребностями, но будьте осторожны и убедитесь, что вы не отключаете заголовки, такие как CSP, для всех, кроме себя.

решение2

Если Headerдиректива не работает, используйте RequestHeaderвместо нее директиву. Вот пример того, как предотвратить подмену заголовка, X-Forwarded-Forкогда Apache используется как обратный прокси-сервер, где это Headerне даст никакого эффекта:

RequestHeader unset X-Forwarded-For
RemoteIPHeader X-Forwarded-For

Связанный контент