Противоударная антикоррозионная обработка - PullRequest
0 голосов
/ 25 октября 2018

У меня есть простое расширение Chrome, которое вставляет iframe в активную страницу ( не важная часть)
Я хочу встроить игру, расположенную в http://diep.io,, но на этом сайте реализовано несколько frame-busting методов.Я все еще хочу иметь возможность загрузить это в iframe , чтобы сделать это мини-окно похожим на вещь, используя Iframe (открытый для других тегов, таких как embed или веб-просмотр (однако вы можете заставить его работать)) .

Так как же я могу получить здесь вещь типа anti-frame busting?
Очевидно,это перекрестное происхождение , поэтому редактирование DOM внутри не действительно самое простое / должно не быть возможным.Я пробовал атрибут sandbox , но это только вызывает проблемы с предыдущей страницей внутри iframe (страница с типом ссылки-центральная) и делает невозможным использование.

Таким образом, главный вопрос здесь заключается в том, как сделать перекрестное происхождение embedded page противодействие разрушению кадров без песочницы атрибут?

1 Ответ

0 голосов
/ 26 октября 2018

Я нашел решение.Мой iframe перемещается с помощью кнопки (с HTML-идентификатором 'deHBox'), а мой iframe связан с переменной, помеченной 'Ifr'.

    document.getElementById("deHBox").addEventListener("click", function(){
    sandbox(false);
    Ifr.src = url;
    Ifr.style.height = 'calc(100% - 23px)';
    Ifr.style.width = '100%';
    setTimeout(function() {sandbox(true)}, 500);
});


    setTimeout(function() {sandbox(true)}, 500);


function sandbox(on) {
    if (on == true) {
        Ifr.sandbox = "allow-scripts allow-forms allow-pointer-lock allow-popups allow-same-origin";
    } else {
        Ifr.removeAttribute('sandbox');
    }
}

Я только что добавил это в свой файл injected.js...

...