2012-06-23 12 views
9

Componenti aggiuntivi di Firefox allow you to do cross-domain communication.Comunicazione interdominio tramite un componente aggiuntivo di Firefox

Esiste un modo per esporre questa funzione in modo da poter avviare ajax tra domini da qualsiasi pagina (dato che ho installato questo addon)?

Edit: so ciò che è CORS, e CORS senso solo quando si ha il controllo del server, ma non lo faccio. Il punto qui è che controllo il browser, sopporto il rischio quindi ti sto chiedendo se è comunque possibile esportare la funzione cross-domain dallo stadio addon allo userland.

+0

Si dovrebbe piuttosto guardare CORS (vedere la risposta di Bart) - consentire a qualsiasi pagina web di fare richieste di origine incrociata senza alcun controllo sarebbe un enorme buco di sicurezza. –

+0

CORS ha senso solo quando si controlla il server, ma io no. Il punto qui è che controllo il browser, sopporto il rischio quindi ti sto chiedendo se in ogni caso di esportare la funzione tra domini dalla piattaforma addon all'area utente. – Howard

+0

Vuoi dire come fa greasemonkey? – Yansky

risposta

5

Come hai detto, la stessa politica di origine serve solo a proteggere il cliente (da soli), di solito da attacchi XSS.

Non sono sicuro di cosa si stia cercando di ottenere con l'addon, ma si può certamente try doing the following on your own machine. Modificando le impostazioni su firefox, puoi ignorare la stessa politica di origine.

Se si sta tentando di sviluppare un plug-in che consente l'accesso tra domini diversi (e quindi potenzialmente aprire vulnerabilità nella propria base client), potrebbe essere necessario utilizzare alcuni trucchi poco ortodossi. Posso pensare ad un paio di modi, ma come CORS, avrai bisogno di accedere almeno al server SOME. In sostanza, puoi creare un proxy che recupera le risorse sul tuo server. Vale a dire, gli utenti del tuo plug-in raggiungono http://yourwebsite.com/?url=http://someotherwebsite.com/resource.

Non riesco a pensare a nessun modo di fare una soluzione solo sul lato client.

+1

"Non riesco a pensare a un modo per fare una soluzione solo sul lato client.". C'è una soluzione per Chrome almeno http://stackoverflow.com/questions/15002408/enable-xss-in-chrome-and-or-safari. Sto ancora cercando inutilmente l'equivalente per FF ... – spinkus

+0

Soluzione trovata, lavorando per me in FF 40 http://stackoverflow.com/questions/17088609/disable-firefox-same-origin-policy/18495435# – spinkus

2

La comunicazione tra domini alias CORS (Cross Origin Resource Share) è possibile solo se il server lo consente e il browser lo supporta.

Facile leggere in questo articolo Wikipedia

lettura pesante in questo documento W3C che è ancora una bozza di lavoro.

Ho utilizzato CORS ora per un anno nel C# Webserver. Ho notato che ogni volta che non aggiungo le intestazioni CORS sul lato server, corro nello same origin policy. Anche quando si richiede lo stesso indirizzo IP ma una porta diversa.

Se il server non supporta CORS, si possono trovare le vostre richieste dominio trasversali a fallire

EDIT:

ho recentemente appreso che la stessa politica di dominio può essere aggirato utilizzando Yahoo! Query Language (YQL). Vedi il link per maggiori informazioni.

Vedere questa voce SO per un esempio Cross Domain Post method ajax call using jquery with xml response

0

Userscripts hanno tra domini XMLHttpRequest, e saranno anche funzionare su tutti i browser.

Problemi correlati