2016-01-27 2 views
2

фон:Определение IFrame недружественных сайтов в рельсах - даже тогда, когда х-каркасные опции отсутствуют заголовок

Я работаю на приложение рельсы, которые будут открыть статьи внутри самого приложения через IFRAME (с навигационной панелью вверху моего приложения, вроде StumbleUpon). Но я заметил, что некоторые веб-сайты, публикующие статьи (примеры: pitchfork.com, vox.com, theverge.com), не могут быть загружены в iframe, установив X-Frame-Options в SAMEORIGIN или DENY.

Мой текущий план работы над этим - посмотреть заголовок ссылки и изучить его, чтобы увидеть, содержит ли он X-Frame-Options. Если это так, я установлю его отказаться от iframe и просто открыть исходный сайт на новой вкладке.

Этот метод, кажется, работает на некоторых веб-сайтах (как pitchfork.com), потому что, когда я прошу заголовок из pitchfork.com, я получаю следующее:

server: nginx/1.4.6 (Ubuntu) 
content-type: text/html; charset=utf-8 
x-frame-options: SAMEORIGIN 
date: Wed, 27 Jan 2016 17:47:54 GMT 
x-varnish: 912263733 912263044 
age: 8 
via: 1.1 varnish 
connection: keep-alive 

Проблема:

Для некоторые веб-сайты (например, vox.com), когда я загружаю их в iframe, the chrome developer console tells me, что параметры x-frame предотвращают загрузку сайта в iframe. Но когда я просматриваю заголовок, параметры x-frame нигде не найдены! Все, что я получаю, это так:

server: nginx/1.6.2 
date: Wed, 27 Jan 2016 17:26:15 GMT 
content-type: text/html 
content-length: 172 
connection: close 

Как работает vox.com? Для дальнейшего уточнения я попытался использовать this tool, который я нашел в другом сообщении stackoverflow, и он также не смог правильно определить, что vox.com блокировал iframe через x-frame-options.

1) Может ли Vox установить параметры x-frame где-то, кроме заголовка? Если последний, как я могу его обнаружить и найти?

2) Любые другие альтернативные стратегии, рекомендуемые для обнаружения недружественных сайтов iframe, чтобы я мог их настроить для открытия на новой вкладке?

ответ

1

Посмотрите на сетевой трафик, записанный на консоли Chrome. В вашем приложении вы просматриваете заголовки ответа HTTP 301 Moved Permanently, который затем перенаправляет вас в местоположение, которое возвращает заголовок X-Frame-Options: SAMEORIGIN.

Другие методы, такие как новый Content-Security-Policy header или код JavaScript, могут использоваться другими веб-сайтами для предотвращения внедрения iframe. Но в случае с vox.com вы просто смотрите на заголовки неправильного ответа.

+0

Отлично, глядя в части сетевого трафика на консоли Chrome, вы открыли заголовок с помощью X-Frame-Options. Я думаю, теперь моя проблема заключается в том, что рельсы не могут обнаружить это при запросе заголовка для веб-сайта - не знаю, что такое перенаправление, потому что это происходит, даже когда я запрашиваю заголовок для главной страницы: www.vox.com теперь это вопрос рельсов, я задам новый вопрос. Спасибо! – drajan

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

  • Нет связанных вопросов^_^