У меня есть два веб-сайта, пусть говорят, что они 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 сохранять эти файлы cookie?
Результаты нюхания HTTP-трафика: в ответе GET/someform.asp есть допустимый заголовок Set-Cookie для каждого сеанса (например, Set-Cookie: ASPKSJIUIUGF=JKHJUHVGFYTTYFY
), но в запросе POST/process.asp нет заголовка Cookie в все.
Edit3: некоторые скрипты AJAX + serveride, по-видимому, способны обойти проблему, но это очень похоже на ошибку, плюс она открывает целый новый набор дыры в безопасности. Я не хочу, чтобы мои приложения использовали комбинацию ошибок с ошибкой + только потому, что это было легко.
Изменить: политика P3P была основной причиной, полное объяснение ниже.