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.

Author: ROMANIA_engineer, 2013-06-13

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

p1

  • przeciągnij Gorsecik do paska
  • teraz kliknij ikonę, gdy będzie zielona, nagłówki CORS zostaną dodane do dowolnej odpowiedzi HTTP

p2

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.
 76
Author: Giacomo Tecya Pigani,
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
 29
Author: Niklas,
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.

 7
Author: Yuchen Zhou,
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

Tutaj wpisz opis obrazka

 6
Author: Tan Mai Van,
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.

Tutaj wpisz opis obrazka

 3
Author: Khado Mikhal,
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