IE: как обрабатывать междоменные куки? - PullRequest
1 голос
/ 01 февраля 2011

Мой основной сайт ( hostsite ) имеет IFRAME с сайтом регистрации ( regsite ), размещенным в другом домене.

Я хочу разместить регистрацию в другом домене, потому что я чувствую, что хранить информацию для входа в БД на hostsite небезопасно, так как многие люди имеют доступ к серверной части.

Все браузеры принимают файл cookie сеанса входа, поступающий с regsite - Internet Explorer 8 этого не делает. Единственный способ заставить IE принять этот файл cookie - добавить оба сайта в «Надежные сайты», а это не то, что мне нужно.

Можно ли как-нибудь обойти междоменную проблему, кроме настройки локального браузера, или я могу переместить регистрацию на hostsite (curl не вариант, так как он не статичен HTML я показываю на сайте регистрации, но файлы PHP)?

Ответы [ 2 ]

4 голосов
/ 01 февраля 2011

Я думаю, что это можно решить, ничего не двигая, и немного программируя. Просто с некоторыми правилами DNS.

Например, вы можете создать новый поддомен с именем register.hostsite (.com) , указывающий на ip, где regsite .

Затем перенаправьте IFRAME на этот новый поддомен.

Он будет получать те же биты с того же сервера, но теперь он будет внутри домена хоста.

Этого должно быть (по крайней мере, теоретически) достаточно для удовлетворения IE. Хотя я не уверен на 100%, я давно не пользовался IFRAMES.

Если это не сработает, я бы посоветовал спросить также serverfault .

РЕДАКТИРОВАТЬ: Я искал другую проблему и нашел эту реализацию PHP "микро-прокси" от Yahoo. Это их рекомендуемый способ решения таких проблем:

http://developer.yahoo.com/javascript/samples/proxy/php_proxy_simple.txt

2 голосов
/ 05 февраля 2011

Проблема с iframe и IE заключается в том, что IE рассматривает содержимое iframe как третью сторону (как в рекламе и т. Д.).

Чтобы IE действительно сохранял файлы cookie, установленные этим документом домена, необходимо, чтобы другой домен выдал заголовок P3P с указанием своих намерений. Это легко сделать и требует добавления только одного http-заголовка.

Я не уверен, что вы подразумеваете под междоменными проблемами, хотя их нет - у вас просто два разных документа из двух разных доменов. Вы не указали, хотите ли вы, чтобы один домен устанавливал файлы cookie для другого или одна страница открывала доступ к другой.

...