Обход стандартного Frame-Busting с расширением Google Chrome
Отказ от ответственности: это домашнее задание.
Я пытаюсь написать расширение Chrome, которое обходит стандартный код очистки кадра, показанный здесь:
if(top!= self){
top[location]= self[location];
}
Я понимаю, что инъекция JS - то, что мне нужно здесь. Я пытался использовать Chrome content_scripts, чтобы сделать это. Я не знаю, достаточно ли оставить мой JS-скрипт, способный к инъекции, или мне нужно выборочно внедрять его только тогда, когда на странице присутствует код, удаляющий фреймы.
manifest.json
...
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["bust.js"],
"run_at": "document_start",
"all_frames": true
}
],
...
bust.js
console.log("It ran.");
var injected= document.createElement("script");
injected.textContent = "if (top !== self) {window.self = window.top;}";
document.documentElement.appendChild(injected);
Однако на самом деле ничего не происходит, когда я делаю это. Я обновляю свою тестовую страницу (в коде HTML которой есть код перебора кадров), и мой console.log даже не запускается. Я уверен, что просто упускаю из виду что-то глупое, но не похоже, что JS даже вводится с самого начала, не говоря уже о корректной работе.