Отключить firefox же политику происхождения
Я разрабатываю локальный инструмент исследования, который требует, чтобы я отключил ту же политику происхождения Firefox (с точки зрения доступа к скриптам, я действительно не забочусь о междоменных запросах).
более конкретно, я хочу, чтобы скрипты в домене хоста могли получать доступ к произвольным элементам в любых фреймах, встроенных в страницу, независимо от их домена.
Я знаю предыдущие вопросы и ответы, в которых упоминалось расширение CORS FF, но это не то, что мне нужно, поскольку оно позволяет только CORS, но не скрипт доступа.
Если это не может быть сделано легко, я также был бы признателен за любые идеи, которые указывают мне на определенную часть кода FF src, которую я могу изменить, чтобы отключить SOP, чтобы я мог перекомпилировать FF.
5 ответов:
есть расширение Firefox, которое добавляет заголовки CORS в любой HTTP-ответ, работающий на последнем Firefox (построить 36.0.1) освобожден 5 марта 2015. Я протестировал его, и он работает как на Windows 7, так и на Mavericks. Я проведу вас через шаги, чтобы заставить его работать.
1) Получение расширения
вы можете скачать xpi из здесь (автора сборки) или здесь (зеркало, может не обновляется).
или скачать файлы С GitHub. Теперь это также на Firefox Marketplace:скачать тут. В этом случае аддон устанавливается после нажатия кнопки Установить и можно перейти к шагу 4.
Если вы загрузили xpi, вы можете перейти к шагу 3. Если вы загрузили zip из GitHub, перейдите к Шагу 2.
2) построение xpi
вам нужно извлечь молнию, получить внутри папка "cors-everywhere-firefox-addon-master", выберите все элементы и заархивируйте их. Переименуйте созданный zip-как *.xpi
Примечание: Если вы используете графический интерфейс OS X, он может создавать некоторые скрытые файлы, поэтому вам будет лучше использовать командную строку.
3) Установка xpi
вы можете просто перетащить xpi в firefox или перейти к: "about:addons", нажмите на шестеренку в правом верхнем углу и выберите "Установить add on из файла", затем выберите вас .xpi файл. Теперь, перезагрузите firefox.
4) заставить его работать
теперь расширение не будет работать по умолчанию. Вам нужно перетащить значок расширения на панель расширений, но не волнуйтесь. Есть фотографии!
- нажмите на меню Firefox
- нажмите на Настройки
- перетащите Корс в бар
- Теперь нажмите на значок, когда он зеленый заголовки CORS будет добавлен в любой HTTP-ответ
5) тестирование, если он работает
jQuery
$.get( "http://example.com/", function( data ) { console.log (data); });
JavaScript
xmlhttp=new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4) { console.log(xmlhttp.responseText); } } xmlhttp.open("GET","http://example.com/"); xmlhttp.send();
6) Заключительные положения
отметим, что https к http не допускается.
там может быть способ обойти это, но это за рамками вопроса.
Я понял, что мой старый ответ понижен, потому что я не указал, как конкретно отключить ту же политику происхождения FF. Здесь я дам более подробный ответ:
предупреждение: для этого требуется повторная компиляция FF, и вновь скомпилированная версия Firefox не сможет включить подачка снова.
Проверьте исходный код Firefox Mozilla, найдите nsScriptSecurityManager.cpp в каталоге src. Я буду использовать тот, который указан здесь как образец: http://mxr.mozilla.org/aviarybranch/source/caps/src/nsScriptSecurityManager.cpp
перейдите к реализации функции nsScriptSecurityManager:: CheckSameOriginURI, которая является строкой 568 на дату 03/02/2016.
чтобы эта функция всегда возвращала NS_OK.
Это отключит SOP навсегда.
ответ аддона браузера от @Giacomo должен быть полезен для большинства людей, и я принял этот ответ, однако, для моего личного потребности в исследованиях (TL;не буду объяснять здесь) этого недостаточно, и я считаю, что другим исследователям может потребоваться сделать то, что я сделал здесь, чтобы полностью убить SOP.
Я написал дополнение, чтобы преодолеть эту проблему в Firefox (Chrome, Opera версия будет иметь в ближайшее время). Он работает с последней версией Firefox, с красивым интерфейсом и поддержкой JS regex:https://addons.mozilla.org/en-US/firefox/addon/cross-domain-cors
по состоянию на сентября 2016 этот аддон лучше всего отключить CORS: https://github.com/fredericlb/Force-CORS/releases
на панели параметров вы можете настроить, какой заголовок вводить и конкретный веб-сайт, чтобы он был включен автоматически.