Условно установленный X-Frame-Option

Я пытаюсь установить X-Frame-Options с помощью IBM HTTP Server (IHS) 8.5.5.12, основанного на HTTP-сервере apache 2.2.32.

Я пробовал с SetEnvIf, но не знаю, как сравнивать переменную среды в файле httpd.conf.

Я пробовал то же самое в IHS 9 с условием If, и оно работает, но не знаю, как реализовать то же самое в IHS 8.5.5.12.

<IfModule mod_headers.c>
    <If "%{HTTP:X-Requested-From} == 'mobileapp'">
        Header unset X-Frame-Options
    </If>
    <Else>
        Header set X-Frame-Options SAMEORIGIN
    </Else>
</IfModule>

Приведенный выше код отлично работает в IHS 9. Может ли кто-нибудь помочь здесь?

С уважением
Мохаммад Ашфак


person Mohammad Ashfaq    schedule 10.08.2018    source источник


Ответы (1)


Хитрость здесь в том, что директива Header может быть условной в Apache 2.2, но только для переменной среды. Но SetEnvIf запускается первым и может установить переменную среды на основе заголовка запроса:

SetEnvIf X-Requested-From mobileapp is_mobile=1
Header set X-Frame-Options SAMEORIGIN
Header unset X-Frame-Options env=is_mobile


$ wget -qS  http://localhost 2>&1 |grep X-F   X-Frame-Options:
SAMEORIGIN 
$ wget -qS  --header="X-Requested-From: mobileapp"
http://localhost 2>&1 |grep X-F 
$
person covener    schedule 10.08.2018