Tworzę lokalne narzędzie badawcze, które wymaga ode mnie wyłączenia zasad tego samego pochodzenia w Firefoksie (jeśli chodzi o dostęp do skryptu, nie obchodzą mnie żądania między domenami).
Mówiąc dokładniej, chcę, aby skrypty w domenie hosta miały dostęp do dowolnych elementów w dowolnych elementach iframe osadzonych na stronie, niezależnie od ich domeny.
Znam poprzednie pytania i odpowiedzi, w których wspomniano o rozszerzeniu CORS FF, ale nie tego potrzebuję, ponieważ zezwala tylko na CORS, ale nie na dostęp do skryptu.
Jeśli nie można tego łatwo zrobić, byłbym również wdzięczny za wszelkie spostrzeżenia, które wskazują mi określoną część kodu FF src, którą mogę zmodyfikować, aby wyłączyć SOP, aby móc ponownie skompilować FF.
security
firefox
same-origin-policy
Yuchen Zhou
źródło
źródło
Odpowiedzi:
Istnieje rozszerzenie przeglądarki Firefox, które dodaje nagłówki CORS do każdej odpowiedzi HTTP działającej w najnowszej wersji przeglądarki Firefox ( kompilacja 36.0.1 ) wydanej 5 marca 2015 r . Przetestowałem to i działa zarówno na Windows 7, jak i na Mavericks. Przeprowadzę Cię przez wszystkie kroki, aby to działało.
1) Uzyskanie rozszerzenia
Możesz pobrać xpi stąd (kompilacje autorskie) lub stąd (kopia lustrzana, może nie być aktualizowana).
Lub pobierz pliki z GitHub. Teraz jest również w Firefox Marketplace: Pobierz tutaj . W takim przypadku dodatek jest instalowany po kliknięciu przycisku instalacji 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ć plik zip, dostać się do folderu „cors-wszędzie-firefox-addon-master”, zaznaczyć wszystkie elementy i spakować je. Następnie zmień nazwę utworzonego pliku ZIP na * .xpi
Uwaga: jeśli używasz interfejsu GUI OS X, może on tworzyć ukryte pliki, więc lepiej byłoby używać wiersza poleceń.
3) Instalowanie xpi
Możesz po prostu przeciągnąć i upuścić xpi do przeglądarki Firefox lub przejść do: „about: addons”, kliknąć zębatkę w prawym górnym rogu i wybrać „zainstaluj dodatek z pliku”, a następnie wybrać plik .xpi. Teraz uruchom ponownie przeglądarkę Firefox.
4) Uruchomienie tego
Teraz rozszerzenie nie będzie działać domyślnie. Musisz przeciągnąć ikonę rozszerzenia na pasek rozszerzeń, ale nie martw się. Są zdjęcia!
5) Testowanie, czy działa
jQuery
JavaScript
6) Uwagi końcowe
Zauważ, że https do http nie jest dozwolone .
Może istnieje sposób na obejście tego problemu, ale to leży poza zakresem pytania.
źródło
security.mixed_content.block_active_content
na false isecurity.mixed_content.block_display_content
na prawdziwe . Pamiętaj, że wyłączasz niektóre zabezpieczenia i powinno to być rozwiązanie tymczasowe.źródło
file://
protokołem. Informatycy powinni przykładać większą wagę do słowa „cokolwiek” - chyba że przetestowałeś wszystko (czego nie zrobiłeś), staraj się być bardziej konserwatywnym w swoich uwagach. To samo dotyczy słowa „bezużyteczny”.Zdałem sobie sprawę, że moja starsza odpowiedź została odrzucona, ponieważ nie określiłem, jak konkretnie wyłączyć tę samą politykę pochodzenia FF. Tutaj podam bardziej szczegółową odpowiedź:
Ostrzeżenie: Wymaga to ponownej kompilacji FF, a nowo skompilowana wersja przeglądarki Firefox nie będzie mogła ponownie włączyć SOP.
Sprawdź kod źródłowy Mozilli Firefox, znajdź nsScriptSecurityManager.cpp w katalogu src. Jako przykład użyję tego wymienionego tutaj: http://mxr.mozilla.org/aviarybranch/source/caps/src/nsScriptSecurityManager.cpp
Przejdź do implementacji funkcji nsScriptSecurityManager :: CheckSameOriginURI, czyli linii 568 z dnia 03/02/2016.
Spraw, aby ta funkcja zawsze zwracała NS_OK.
To wyłączy SOP na dobre.
Odpowiedź dodatku do przeglądarki autorstwa @Giacomo powinna być przydatna dla większości ludzi i zaakceptowałem tę odpowiedź, jednak ze względu na moje osobiste potrzeby badawcze (TL; nie wyjaśniam tutaj), to nie wystarczy i myślę, że inni badacze mogą potrzebować zrobić to, co Zrobiłem tutaj, aby całkowicie zabić SOP.
źródło
Napisałem dodatek, aby rozwiązać ten problem w przeglądarce Firefox (Chrome, wersja Opera wkrótce). Działa z najnowszą wersją przeglądarki Firefox, z pięknym interfejsem użytkownika i obsługą wyrażeń regularnych JS: https://addons.mozilla.org/en-US/firefox/addon/cross-domain-cors
źródło
Od września 2016 roku ten dodatek najlepiej wyłącza CORS : https://github.com/fredericlb/Force-CORS/releases
W panelu opcji możesz skonfigurować, który nagłówek wstawić i konkretną witrynę internetową, aby była włączana automatycznie.
źródło
Dodatek cors-wszędzie działa dla mnie do Firefoksa 68, po 68 muszę dostosować „privacy.file_unique_origin” -> false (przez open „about: config”), aby rozwiązać „ żądanie CORS nie HTTP ” dla nowej reguły CORS tego samego pochodzenia wprowadzone.
źródło
W
about:config
dodatkucontent.cors.disable
(pusty ciąg).źródło
true
, ale nic nie mówią ofalse
ani innych wartościach. „W przeglądarce Firefox preferencją wyłączającą CORS jest content.cors.disable. Ustawienie tej wartości na true wyłącza CORS, więc w takim przypadku żądania CORS zawsze kończą się niepowodzeniem z tym błędem”. developer.mozilla.org/en-US/docs/Web/HTTP/CORS/Errors/ ...