У меня есть два веб-сайта, скажем, они example.com
и anotherexample.net
.
На anotherexample.net/page.html
у меня есть IFRAME SRC="http://example.com/someform.asp"
. Этот IFRAME отображает форму, которую пользователь может заполнить и отправить на http://example.com/process.asp
. Когда я открываю форму ("someform.asp
") в своем окне браузера, все работает хорошо.
Однако , когда я загружаю someform.asp
в качестве IFRAME в IE 6 или IE 7, файлы cookie для example.com не сохраняются. В Firefox эта проблема не появляется.
В целях тестирования я создал аналогичную настройку для http://newmoon.wz.cz/test/page.php.
example.com
использует сеансы на основе файлов cookie (и я ничего не могу с этим поделать), поэтому без файлов cookie process.asp
не будет выполняться. Как заставить IE сохранить эти куки?
Результаты отслеживания HTTP-трафика: в ответе GET /someform.asp имеется действительный заголовок Set-Cookie для каждой сессии (например, Set-Cookie: ASPKSJIUIUGF=JKHJUHVGFYTTYFY
), но в запросе POST /process.asp заголовок Cookie отсутствует все.
Edit3: некоторые серверные сценарии AJAX +, по-видимому, способны обойти проблему, но это очень похоже на ошибку, плюс он открывает целый новый набор дыр в безопасности . Я не хочу, чтобы мои приложения использовали комбинацию баг + дыра в безопасности только потому, что это легко.
Редактировать: основная причина была политика P3P, полное объяснение ниже.