2012-06-23 13 views
9

Complementos de Firefox allow you to do cross-domain communication.Comunicación entre dominios usando un complemento de Firefox

¿Hay alguna forma de exponer esta función para poder iniciar ayax entre dominios desde cualquier página (dado que he instalado este complemento)?

Editar: sé lo que es CORS, y CORS sólo tienen sentido cuando se tiene controlar el servidor, pero no lo hacen. El punto aquí es que controlo el navegador, corro el riesgo, así que estoy preguntando si de todos modos exportar la función de dominio cruzado desde la etapa de complemento al territorio del usuario.

+0

Debería mirar CORS (ver la respuesta de bart) - permitir que cualquier página web haga solicitudes de origen cruzado sin ningún tipo de controles sería un gran agujero de seguridad. –

+0

CORS solo tienen sentido cuando tiene el control del servidor, pero yo no. El punto aquí es que controlo el navegador, asumo el riesgo, así que estoy preguntando si de todos modos exportar la función de dominio cruzado desde la plataforma de complemento al territorio del usuario. – Howard

+0

¿Te refieres a cómo lo hace greasemonkey? – Yansky

Respuesta

5

Como se ha dicho, la política del mismo origen sólo sirve para proteger al cliente (a sí mismo), por lo general de ataques XSS.

No estoy seguro de lo que está tratando de lograr con el complemento, pero ciertamente puede try doing the following on your own machine. Al cambiar la configuración en Firefox, puede ignorar la misma política de origen.

Si está intentando desarrollar un complemento que permita el acceso de dominio cruzado (y, por lo tanto, potencialmente abrir vulnerabilidades en su base de clientes), es posible que necesite emplear algunos trucos poco ortodoxos. Puedo pensar en un par de formas, pero al igual que CORS, necesitarás acceso a SOME server por lo menos. En esencia, puede crear un proxy que recupere los recursos en su servidor. Es decir, los usuarios de su complemento llegan al http://yourwebsite.com/?url=http://someotherwebsite.com/resource.

No se me ocurre ninguna manera de hacer una solución solo para el lado del cliente.

+1

"No se me ocurre ninguna manera de hacer una solución solo para el cliente". Hay una solución para Chrome al menos http://stackoverflow.com/questions/15002408/enable-xss-in-chrome-and-or-safari. Todavía estoy buscando infructuosamente el equivalente de FF ... – spinkus

+0

Solución encontrada, que funciona para mí en FF 40 http://stackoverflow.com/questions/17088609/disable-firefox-same-origin-policy/18495435# – spinkus

2

La comunicación de dominio cruzado alias CORS (Cross Origin Resource Share) solo es posible si el servidor lo permite y el navegador lo admite.

facilitar la lectura en este artículo Wikipedia

pesada la lectura de este documento W3C que todavía es un borrador de trabajo.

He usado CORS ahora por un año en el C# Webserver. Noté que cada vez que no agrego los encabezados CORS en el lado del servidor, me encuentro con el same origin policy. Incluso cuando solicita la misma dirección IP pero un puerto diferente.

Si el servidor no soporta CORS, es posible que sus peticiones de dominios cruzados fallen

EDIT:

Recientemente he aprendido que la misma directiva de dominio se puede evitar usando Yahoo! Query Language (YQL). Ver el enlace para más información.

ver este artículo así que para un ejemplo Cross Domain Post method ajax call using jquery with xml response

0

Userscripts tienen XMLHttpRequest entre dominios, y que incluso se ejecutará en todos los navegadores.

Cuestiones relacionadas