2012-06-23 5 views
9

Дополнения Firefox allow you to do cross-domain communication.Междоменная связь с использованием дополнения Firefox

Есть ли способ открыть эту функцию, чтобы я мог инициировать междоменную ajax с любой страницы (учитывая, что я установил этот аддон)?

Редактировать: Я знаю, что такое CORS, а CORS имеет смысл только тогда, когда вы контролируете сервер, но я этого не делаю. Дело здесь в том, что я управляю браузером, я несу риск, поэтому я прошу, чтобы в любом случае экспортировать междоменную функцию с этапа аддона в пользовательскую область.

+0

Вы должны взглянуть на CORS (см. Ответ Барта) - разрешить любой веб-странице делать запросы с кросс-началом без каких-либо проверок, если бы это была огромная дыра в безопасности. –

+0

CORS имеет смысл только тогда, когда вы управляете сервером, но я этого не делаю. Дело здесь в том, что я управляю браузером, я несу риск, поэтому я прошу, чтобы в любом случае экспортировать междоменную функцию с платформы аддона в пользовательскую область. – Howard

+0

Вы имеете в виду, как это делает greasemonkey? – Yansky

ответ

5

Как вы уже говорили, та же политика происхождения служит только для защиты клиента (самостоятельно), как правило, от атак XSS.

Я не уверен, чего вы пытаетесь достичь с помощью аддона, но вы можете, конечно, try doing the following on your own machine. Изменяя настройки в firefox, вы можете игнорировать одну и ту же политику происхождения.

Если вы пытаетесь разработать плагин, который позволяет использовать междоменный доступ (и, следовательно, потенциально открывать уязвимости в вашей клиентской базе), возможно, вам придется использовать некоторые неортодоксальные трюки. Я могу думать о нескольких путях, но, как и CORS, вам потребуется доступ к серверу НЕКОТОРЫХ, по крайней мере. Вы можете по существу создать прокси-сервер, который извлекает ресурсы на вашем сервере. Т.е., пользователи вашего плагина хиты http://yourwebsite.com/?url=http://someotherwebsite.com/resource.

Я не могу думать о том, как сделать клиентское решение.

+1

«Я не могу думать о том, как сделать решение только на стороне клиента». Существует решение для Chrome по крайней мере http://stackoverflow.com/questions/15002408/enable-xss-in-chrome-and-or-safari. Я по-прежнему бесплодно ищет эквивалент для FF ... – spinkus

+0

Найдено решение, работающее для меня в FF 40 http://stackoverflow.com/questions/17088609/disable-firefox-same-origin-policy/18495435# – spinkus

2

Перекрестная доменная связь aka CORS (Cross Origin Resource Share) возможна только в том случае, если сервер разрешает ее, и браузер поддерживает ее.

Простое чтение в этой статье Wikipedia

Тяжелое чтение в этом W3C документе, который по-прежнему является рабочим проектом.

Я использовал CORS сейчас в течение года в C# Webserver. Я заметил, что всякий раз, когда я не добавляю заголовки CORS на стороне сервера, я сталкиваюсь с same origin policy. Даже при запросе на тот же IP-адрес, но с другим портом.

Если сервер не поддерживает CORS, вы можете найти ваши запросы домена крест на провал

EDIT:

Я недавно узнал, что та же политика домена можно обойти с помощью Yahoo! Query Language (YQL). См. Ссылку для получения дополнительной информации.

См этот пункт SO для примера Cross Domain Post method ajax call using jquery with xml response

-1

У Вас есть доступ к другому серверу ?? JSONP это вообще хорошая идея, если у вас есть доступ.

http://en.wikipedia.org/wiki/JSONP

+1

Состояние OP он не имеет доступа к серверу. –

0

Userscripts имеют междоменное XMLHttpRequest, и они будут работать даже на всех браузерах.

Смежные вопросы