Противоударная антикоррекция
У меня есть простое расширение Chrome, которое вставляет iframe в активную страницу (не важная часть)
Я хочу встроить игру по адресу http://diep.io/, но на этом сайте есть некоторые frame-busting
методы реализованы. Я все еще хочу иметь возможность загрузить это в iframe, чтобы сделать это мини-окно похожим на вещь, используя Iframe (открытый для других тегов, таких как embed или webview(однако вы можете заставить его работать)).
Так как я могу получить anti-frame busting
типа вещь собирается здесь?
Очевидно, что это перекрестное происхождение, поэтому редактирование DOM внутрине совсем легкое /не должно быть возможным. Я пробовал атрибут песочницы, но это только вызывает проблемы с предыдущей страницей внутри iframe (страница с типом ссылки-центральная) и делает невозможным использование.
Таким образом, главный вопрос здесь заключается в том, как сделать перекрестное происхождение embedded page
анти-разорение кадра без атрибута песочницы?
1 ответ
Я нашел решение. Мой 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
файл...