ребенок iframe самориген проблемы - PullRequest
0 голосов
/ 18 октября 2018

У меня есть сайт (localhost:8080).На веб-сайте отображается iframe (назовем его frame.com).frame.com также имеет iframe для того же источника, который мы назовем frame.com/child.

Оба frame.com и frame.com/child имеют x-frame-options:sameorigin.Обычно это блокирует localhost от отображения frame.com.Однако у меня есть расширение Chrome, которое выполняет следующий код

var headerToStrip = 'x-frame-options';

chrome.webRequest.onHeadersReceived.addListener(
  function(details) {
    if (details.initiator !== 'http://localhost:8080') {
      return { responseHeaders: details.responseHeaders }
    }
    return {
      responseHeaders: details.responseHeaders.filter(function(header) {
        return headerToStrip.indexOf(header.name.toLowerCase()) < 0;
      })
    };
  }, {
    urls: ["<all_urls>"]
  }, ["blocking", "responseHeaders"]
);

Okiedoke, теперь localhost успешно отображает frame.com.Тем не менее, проблема все еще существует.frame.com НЕ отображается frame.com/child.

Это сообщение, которое я получаю в журнале консоли Chrome:

Refused to display 'frame.com/child' in a frame because it set 'X-Frame-Options' to 'sameorigin'

Почему возникает эта ошибка и как ее устранить?frame.com и frame.com/child находятся на одном и том же происхождении, если я правильно понимаю.

...