Wyłącz Firefox same origin policy
Rozwijam lokalne narzędzie badawcze, które wymaga ode mnie wyłączenia tej samej polityki pochodzenia Firefoksa (jeśli chodzi o dostęp do skryptów, nie obchodzi mnie to).
Dokładniej, chcę, aby skrypty w domenie hosta miały dostęp do dowolnych elementów w dowolnych ramkach iFrame osadzonych na stronie, niezależnie od ich domeny.
Zdaję sobie sprawę z poprzedniego Q & As, który wspomniał o rozszerzeniu CORS FF, ale to nie jest to, czego potrzebuję, ponieważ pozwala tylko CORS, ale nie skrypt dostęp.
Jeśli nie można tego łatwo zrobić, byłbym również wdzięczny za wszelkie pomysły, które wskazują mi pewną część kodu FF src, którą mogę zmodyfikować, aby wyłączyć SOP, aby móc ponownie skompilować FF.
5 answers
Istnieje rozszerzenie do Firefoksa, które dodaje nagłówki CORS do dowolnej odpowiedzi HTTP pracującej na najnowszym Firefoksie (build 36.0.1) wydanym 5 marca 2015 . Przetestowałem go i działa zarówno na Windows 7 jak i Mavericks. Poprowadzę Cię przez kroki, aby go uruchomić.
1) pobieranie rozszerzenia
Możesz pobrać xpi z tutaj (autor buduje) lub z tutaj (mirror, może nie być aktualizowana).
Lub Pobierz pliki z Githuba. Teraz jest również na Firefox Marketplace: Pobierz tutaj . W takim przypadku dodatek jest instalowany po kliknięciu zainstaluj i można przejść do kroku 4.
Jeśli pobrałeś xpi, możesz przejść do kroku 3. Jeśli pobrałeś zip z GitHub, przejdź do kroku 2.
2) budowanie xpi
Musisz rozpakować zip, dostać się do folderu "cors-everywhere-firefox-addon-master", wybrać wszystkie elementy i spakować je. Następnie zmień nazwę utworzony zip jako *.xpi
Uwaga: Jeśli używasz GUI OS X, może tworzyć ukryte pliki, więc lepiej używać wiersza poleceń.
3) Instalacja xpi
Możesz po prostu przeciągnąć i upuścić xpi do Firefoksa lub przejść do: "about: addons", kliknąć trybik w prawym górnym rogu i wybrać "install add on from file", a następnie wybrać Ciebie .plik xpi. Teraz uruchom ponownie Firefoksa.
4) Getting it to work
Teraz rozszerzenie nie będzie działać przez default. Musisz przeciągnąć ikonę rozszerzenia na pasek rozszerzenia, ale nie martw się. Są zdjęcia!
- Kliknij na menu Firefoksa
- Kliknij na customize
- przeciągnij Gorsecik do paska
- teraz kliknij ikonę, gdy będzie zielona, nagłówki CORS zostaną dodane do dowolnej odpowiedzi HTTP
5) testowanie czy działa
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) Uwagi końcowe
Zauważ, że https do http nie jest dozwolone .
Może jest sposób na obejście tego, ale to jest poza zakresem pytania.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-18 01:02:04
about:config -> security.fileuri.strict_origin_policy -> false
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-28 18:22:15
Zdałem sobie sprawę, że moja starsza odpowiedź jest zawyżona, ponieważ nie sprecyzowałem, jak wyłączyć politykę samego pochodzenia FF. Tutaj podam bardziej szczegółową odpowiedź:
Uwaga: wymaga to ponownej kompilacji FF, a nowo skompilowana wersja Firefoksa nie będzie w stanie włączyć SOP ponownie.
Sprawdź kod źródłowy Firefoksa Mozilli, znajdź nsScriptSecurityManager.cpp w katalogu src. Użyję tej wymienionej tutaj jako przykład: http://mxr.mozilla.org/aviarybranch/source/caps/src/nsScriptSecurityManager.cpp
Przejdź do implementacji funkcji Nsscriptsecuritymanager:: CheckSameOriginURI, która jest linią 568 od dnia 03/02/2016.
Niech ta funkcja zawsze zwróci NS_OK.
To wyłączy SOP na dobre.
Odpowiedź dodatku do przeglądarki przez @ Giacomo powinna być przydatna dla większości ludzi i zaakceptowałem tę odpowiedź, jednak dla moich osobistych potrzeb badawczych (TL;nie wyjaśnię tutaj) to nie wystarczy i myślę, że inni naukowcy mogą potrzebować zrobić to, co zrobiłem tutaj, aby w pełni zabić SOP.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-02 23:29:37
Napisałem dodatek, aby rozwiązać ten problem w Firefoksie(Chrome, wersja Opera będzie miała wkrótce). Działa z najnowszą wersją Firefoksa, z pięknym interfejsem użytkownika i obsługą js regex: https://addons.mozilla.org/en-US/firefox/addon/cross-domain-cors
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-21 04:28:55
Od Wrzesień 2016 ten dodatek najlepiej wyłączyć CORS: https://github.com/fredericlb/Force-CORS/releases
W panelu Opcje możesz skonfigurować, który nagłówek ma być wstrzykiwany i konkretną stronę internetową, aby była włączona automatycznie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-09 21:00:16