JavaScript полностью "несанкционированный" переменный
Итак, вот в чем проблема.
У меня есть что-то вроде:
// Dangerous __hostObject that makes requests bypassing
// the same-origin policy exposed from other code.
(function(){
var danger = __hostObject;
})();
delete __hostOBject;
Я уверен в безопасности, зная, что script может вмешаться или получить доступ к __hostObject
?
(Если это возможно, у меня есть уязвимость CSRF или хуже.)
Примечание 1: Это расширение для браузера. У меня лучшие перехватчики, чем другие скрипты, запущенные на странице. Я выполняю перед ними, и я закончил, прежде чем они даже загрузились.
Примечание 2: Я знаю, что это было задано несколько раз для сценариев в целом. Мне интересно, если это возможно, если я знаю, что загружаю перед любыми другими скриптами.
Ответы
Ответ 1
При условии, что __hostObject
можно удалить, код в вашем вопросе безопасен.
Однако я предполагаю, что ваш реальный код немного сложнее. В этом случае требуется очень тщательное кодирование, потому что страница может изменять встроенные методы (например, Function.prototype.call
), чтобы попасть в ваше закрытие и делать все, что они хотят. Я успешно злоупотреблял функциональностью расширительных фреймворков, таких как Kango и Crossrider, с помощью этого метода, когда я выполнял такой тест.
Ответ 2
Не просто добавьте точку останова и перезагрузите script, покажите свой __hostObject