2016-01-10 1 views
1

Я пытаюсь создать приложение phonegap, которое действует как мини-браузер для веб-сайта клиентов. Клиенты-клиенты откроют это приложение, у него будет список избранных. Они могут нажать на один из этих фаворитов, и он откроет этот фаворит на странице minibrowser.html. В файле minibrowser.html есть кнопка избранного вверху, затем она имеет iframe, который должен действовать как браузер. Я открываю избранное, изменяя iframes src. Я могу захватить заголовок/URL с этим кодомКак избежать Uncaught SecurityError: заблокирован кадр с источником с телефонной связью

$iframe.on('load',() => { 
    try { 
    console.log($iframe[0].contentDocument.title); 
    currentUrl = $iframe[0].contentDocument.URL; 
    console.log(currentUrl); 
    } catch (e) {} 
}); 

Но проблема возникает, когда веб-страница в пределах фрейма для доступа пробует window.top с этой линией

window.top.scrollTo(0,1); 

Это бросает ошибку:

Uncaught SecurityError: Blocked a frame with origin " https://webapp.company.com " from accessing a frame with origin "file://". The frame requesting access has a protocol of "https", the frame being accessed has a protocol of "file". Protocols must match.

Есть ли какой-либо способ обмануть window.top для iframe? Есть ли способ сделать это без размещения кода телефонной почты на webapp.company.com. У меня нет доступа к webapp.company.com

ответ

0

В связи с характером протокола HTTPS, для сервера обязательно указывать, принимает ли он стороннее распространение фреймов (что-то вроде того, что вы пытаетесь сделать) , Это делается, поскольку это серьезный недостаток, когда дело касается безопасности.

Представьте себе, что человек может использовать простой вариант этого взлома, чтобы показать часть страницы Facebook, и просмотреть данные своей учетной записи. Эта политика предотвращает это.

Простым обходным путем было бы использовать какой-то URL-фильтр или прокси-форвардер.

Для примера: http://codepen.io/nakshatra334/pen/OMgLLP и откройте консоль; вы увидите политику безопасности содержимого.

Этот заголовок X-Frame-Options отрицает это, поскольку люди могут использовать его для незаконных целей.

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