
Wie kann ich einzelne/mehrere HTTP-Header deaktivieren, wenn meine Website über eine bestimmte IP-Adresse aufgerufen wird? Weil meine CSP-Konfiguration das ordnungsgemäße Laden einiger lokaler Seiten verhindert. Wenn ich beispielsweise phpMyAdmin habe, es aber nicht lokal verwenden kann, weil CSP aktiviert ist.
Antwort1
Sie können Header abhängig von IP-Adressen mithilfe dieser Konfiguration aufheben:
# 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>
Stellen Sie sicher, dass mod_headers aktiviert ist. Weitere Details finden Sie unterhttps://httpd.apache.org/docs/2.4/mod/core.html#ifUndhttps://httpd.apache.org/docs/2.4/expr.html.
Sie können es nach Ihren Bedürfnissen konfigurieren, aber seien Sie vorsichtig und stellen Sie sicher, dass Sie Header wie CSP nicht für alle außer sich selbst deaktivieren.
Antwort2
Wenn die Header
Direktive nicht funktioniert, verwenden Sie RequestHeader
stattdessen die Direktive. Hier ist ein Beispiel, wie Sie das Spoofing des X-Forwarded-For
Headers verhindern können, wenn Apache als Reverse-Proxy verwendet wird, was Header
keine Wirkung hätte:
RequestHeader unset X-Forwarded-For
RemoteIPHeader X-Forwarded-For