Подтвердить что ты не робот

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: Я знаю, что это было задано несколько раз для сценариев в целом. Мне интересно, если это возможно, если я знаю, что загружаю перед любыми другими скриптами.

4b9b3361

Ответ 1

При условии, что __hostObject можно удалить, код в вашем вопросе безопасен.

Однако я предполагаю, что ваш реальный код немного сложнее. В этом случае требуется очень тщательное кодирование, потому что страница может изменять встроенные методы (например, Function.prototype.call), чтобы попасть в ваше закрытие и делать все, что они хотят. Я успешно злоупотреблял функциональностью расширительных фреймворков, таких как Kango и Crossrider, с помощью этого метода, когда я выполнял такой тест.

Ответ 2

Не просто добавьте точку останова и перезагрузите script, покажите свой __hostObject