2012-06-23 3 views
9

Firefox-Addons allow you to do cross-domain communication.Cross-Domain-Kommunikation mit einem Firefox-Addon

Gibt es eine Möglichkeit, diese Funktion zu offenbaren, so dass ich Cross-Domain-Ajax von jeder Seite initiieren kann (vorausgesetzt, ich habe dieses Addon installiert)?

Bearbeiten: Ich weiß, was CORS ist, und CORS nur sinnvoll, wenn Sie den Server steuern, aber ich nicht. Der Punkt hier ist, dass ich den Browser kontrolliere, ich trage das Risiko, also frage ich, ob ich die Cross-Domain-Funktion von der Addon-Stufe in das Userland exportieren soll.

+0

Sie sollten sich lieber CORS anschauen (siehe Antwort von bart) - jede Webseite zuzulassen, die Anfragen quer durch den Ursprung ohne irgendwelche Überprüfungen ausführt, wäre eine große Sicherheitslücke. –

+0

CORS nur sinnvoll, wenn Sie den Server steuern, aber ich nicht. Der Punkt hier ist, dass ich den Browser kontrolliere, ich trage das Risiko, also frage ich, ob die Cross-Domain-Funktion von der Addon-Plattform in das Userland exportiert werden soll. – Howard

+0

Meinst du wie greasemonkey es macht? – Yansky

Antwort

5

Wie Sie gesagt haben, dient die Same Origin Policy nur den Client (selbst) zu schützen, in der Regel von XSS-Angriffen.

Ich bin mir nicht sicher, was Sie mit dem Addon erreichen wollen, aber Sie können sicherlich try doing the following on your own machine. Wenn Sie die Einstellungen in Firefox ändern, können Sie die gleiche Ursprungsrichtlinie ignorieren.

Wenn Sie versuchen, ein Plugin zu entwickeln, das den domänenübergreifenden Zugriff ermöglicht (und dadurch möglicherweise Sicherheitslücken in Ihrem Client-System öffnet), müssen Sie möglicherweise einige unorthodoxe Tricks anwenden. Ich kann mir ein paar Wege ausdenken, aber wie bei CORS benötigen Sie zumindest Zugriff auf den SOME-Server. Sie können im Wesentlichen einen Proxy erstellen, der stattdessen die Ressourcen auf Ihrem Server abruft. Dh, die Nutzer Ihres Plugins erreichen http://yourwebsite.com/?url=http://someotherwebsite.com/resource.

Ich kann mir keine Möglichkeit vorstellen, eine clientseitige Lösung zu machen.

+1

"Ich kann mir keine Möglichkeit vorstellen, eine clientseitige Lösung zu erstellen." Es gibt eine Lösung für Chrome mindestens http://stackoverflow.com/questions/15002408/enable-xss-in-chrome-and-safari. Ich bin immer noch ergebnislos Suche nach Äquivalent für FF ... – spinkus

+0

Gefunden Lösung, arbeitet für mich in FF 40 http://StackOverflow.com/Questions/17088609/disable-firefox-same-origin-policy/18495435# – spinkus

2

Cross-Domain-Kommunikation aka CORS (Cross Origin Resource Share) ist nur möglich, wenn der Server es erlaubt, und der Browser unterstützt es.

Einfache Lesung in diesen Wikipedia Artikeln

Schwere Lektüre in diesem W3C Dokument, das noch ein Arbeitsentwurf ist.

Ich habe CORS jetzt seit einem Jahr in C# Webserver verwendet. Mir ist aufgefallen, dass ich, wenn ich die CORS-Header auf der Serverseite nicht hinzufüge, auf same origin policy stoße. Selbst wenn Sie die gleiche IP-Adresse anfordern, aber einen anderen Port. um mit Yahoo! Query Language (YQL)

ich vor kurzem erfahren, dass die gleiche Domain Politik gearbeitet werden kann:

Wenn der Server CORS nicht unterstützt, können Sie Ihre Cross-Domain-Anfragen

EDIT zum Scheitern verurteilt finden. Siehe den Link für weitere Informationen.

diesen SO Artikel siehe für ein Beispiel Cross Domain Post method ajax call using jquery with xml response

0

Userscripts haben Cross-Domain-XMLHttpRequest, und sie werden auch auf allen Browsern laufen.