IE: как обрабатывать междоменные куки?
Мой основной сайт (хостинг) имеет IFRAME
с сайта регистрации (regsite), размещенного на другом домене.
Я хочу разместить регистрацию в другом домене, потому что чувствую, что хранение информации для входа в БД на хост-сайте небезопасно, так как многие люди имеют доступ к бэкэнду.
Все браузеры принимают сессионный cookie-файл для входа, полученный от regsite, а Internet Explorer 8 - нет. Единственный способ заставить IE принять этот cookie - добавить оба сайта в "Надежные сайты", а это не то, что мне нужно.
Можно ли как-нибудь обойти междоменную проблему, кроме настройки локального браузера, или это мой единственный вариант перенести регистрацию на хост-сайт (curl
не вариант, так как это не статический HTML, который я отображаю на сайте регистрации, а файлы PHP)?
2 ответа
Я думаю, что это можно решить, ничего не двигая, и немного программируя. Просто с некоторыми правилами DNS.
Например, вы можете создать новый поддомен с именем register.hostsite(.com), указывающий на ip, где находится regsite.
Затем перенаправьте IFRAME
на этот новый поддомен.
Он будет получать те же биты с того же сервера, но теперь он будет внутри домена хоста.
Этого должно быть (по крайней мере, в теории) достаточно, чтобы удовлетворить IE. Я не уверен на 100%, хотя, я не использовал IFRAMES долгое время.
Если это не сработает, я бы посоветовал спросить и о сбое сервера.
РЕДАКТИРОВАТЬ: Я искал другую проблему и нашел эту реализацию PHP "микро-прокси" Yahoo. Это их рекомендуемый способ решения таких проблем:
http://developer.yahoo.com/javascript/samples/proxy/php_proxy_simple.txt
Проблема с iframe и IE заключается в том, что IE рассматривает содержимое iframe как третью сторону (как в рекламе и т. Д.).
Чтобы IE фактически сохранял файлы cookie, установленные этим документом домена, вам нужно, чтобы другой домен испустил P3P- заголовок с указанием своих намерений. Это легко сделать и требует добавления только одного http-заголовка.
Я не уверен, что вы подразумеваете под междоменными проблемами, хотя их нет - у вас просто два разных документа из двух разных доменов. Вы не указали, хотите ли вы, чтобы один домен устанавливал файлы cookie для другого, или одна страница обращается к другой.