2014-02-01 3 views
2

Мой сервер Nginx устанавливает заголовок X-Frame в DENY, это так хорошо. Но теперь мне нужно разрешить только одну страницу моего сайта внедряться в iframe за пределами моего домена.Разрешение на установку моего сайта на iFrame

Я попытался решить эту проблему на уровне приложений с использованием PHP внутри контроллера, который обслуживает веб-страницы:

header('X-Frame-Options: ALLOW-FROM 127.0.0.1'); 

Но ответ, когда я пытался встроить страницу на внешний IFRAME был:

X-Frame-Options:ALLOW-FROM 127.0.0.1 
X-Frame-Options:DENY 

Так объединяет параметры (один набор конфигурации nginx с одним набором кода приложения)? Итак, как я могу позволить одной странице моего сервера быть встроенным в внешний iframe?

+0

У вас есть что-нибудь в директиве nginx 'add_header' для x-frame-options? Если да, попробуйте прокомментировать это. PHP должен заменять параметры x-frame, если вы не укажете «false» во втором параметре header() –

+0

@HalfCrazed Это отключит x-frame для остальной части моего сайта, мне нужно решение, которое предотвращает iframe на всех моих страницах, кроме одного – DomingoSL

ответ

0

Почему бы не написать простую инструкцию if else? Если PHP обнаруживает определенную страницу (URL), разрешите встраивать ее в iFrame else, не позволяйте встраиваться в iFrame.

0

В случае Джанго мы ее решили, как этот

location /the/page/you/want/to/expose/ { 
    add_header Access-Control-Allow-Origin *; 
    include  uwsgi_params; 
    uwsgi_pass  unix:/run/uwsgi/app/appsco/socket; 
} 

location/{ 
    add_header X-Frame-Options DENY; #This is your catch all. 
    include  uwsgi_params; 
    uwsgi_pass  unix:/run/uwsgi/app/appsco/socket; 
} 

Не забудьте удалить add_header на весь сервер. Поместите его в свой улов. Для пользователей Django @frame_deny_exempt взгляните на http://django-secure.readthedocs.org/en/latest/middleware.html

Смежные вопросы