Как иметь разные параметры x-frame для разных страниц

Я добавил заголовок X-FRAME-OPTION в свой .htaccess, чтобы предотвратить проблемы с кликджекингом.

<IfModule mod_headers.c>
    Header append X-Frame-Options "SAMEORIGIN"
</IfModule>

Теперь мне нужно разрешить доступ к определенному маршруту через iframe из внешних доменов. Я использую PHP и попытался перезаписать заголовок X-frame-option через:

  header('X-Frame-Options: GOFORIT');

Однако похоже, что параметр X-frame не перезаписывается, а вместо этого повторно добавляется в соответствии со следующей ошибкой браузера (Chrome):

Multiple 'X-Frame-Options' headers with conflicting values ('GOFORIT, SAMEORIGIN') encountered when loading 'https://foo.com/baz/1'. Falling back to 'DENY'.

Как вы собираетесь перезаписывать параметры x-frame для определенных страниц?


person turntwo    schedule 29.04.2015    source источник


Ответы (2)


Вы можете обернуть эти директивы внутри <Location> или <LocationMatch>, как и большинство директив, чтобы ограничить URL-адреса, к которым они применяются.

Также, если вы собираетесь перезаписать заголовок, используйте «Набор заголовков» вместо «Добавить заголовок».

person covener    schedule 29.04.2015

После некоторых тщательных размышлений я переместил вложение заголовка в код приложения. В моем случае я использую codeigniter, поэтому я добавил заголовок x-frame-option в хук.

Решение Ковенера также возможно, но, похоже, вам потребуется доступ либо к файлу конфигурации apache, либо к файлу виртуального хоста, поскольку <location> и <locationMatch> нельзя использовать в файле .htaccess.

person turntwo    schedule 30.04.2015