Cross-origin anti-frame busting

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

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

Итак, главный вопрос здесь - как сделать cross-originembedded pageanti frame bustingбез атрибутом sandbox?

Будет ли заставить iframe думать, что это верхняя страница? (Я знаю, что это обсуждалось) Если да, то как именно это сделать?

255.tar.xz 25.10.2018 08:07

Атрибут песочницы - это то, как вы изменяете политику перекрестного происхождения расширения, хром не позволит вам далеко продвинуться без него, если вы хотите внедрить контент на страницу, которую вы не создавали. Есть ли причина, по которой вы избегаете этого?

user3967379 25.10.2018 08:11

Я не утверждаю, что он называет это моим кодом, но я избегаю этого, потому что я всюду искал эту ошибку и пока не нашел исправления - The frame attempting navigation is sandboxed, and is therefore disallowed from navigating its ancestors. этот код ошибки появляется всякий раз, когда я нажимаю на ссылку внутри (ссылка javascript с использованием угловой). Есть ли способ обойти это и, возможно, добавить страницу в белый список? Это было бы даже лучшим решением, чем то, о котором я спрашивал выше.

255.tar.xz 25.10.2018 08:15

Кроме того, команда интернет-магазина уже несколько раз одобряла мое расширение (обновления) вручную, так что они в порядке с тем, что я делаю. Не беспокойся об этом. Просто хочу улучшить качество моего расширения и предотвратить неудовлетворенность пользователей, возможно, когда они щелкнут ссылку diep.io и обнаружат, что любая отправляемая ими форма была полностью стерта из-за надоедливой чуши типа if (window.top == false) { window.parent.location.replace('blah') }.

255.tar.xz 25.10.2018 08:17
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
4
306
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 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 ...

Другие вопросы по теме