Сеансы Java и PHP

См.:

... а также примечания в XHR Уровень 2 о CORS:

Информация намеренно отфильтровывается.

Редактируйте много месяцев спустя: Следующий комментарий здесь спросил «почему»; на якоре в первой ссылке не хватало нескольких символов, из-за чего было трудно увидеть, в какой части документа я имел в виду.

Это вещь безопасности - попытка избежать раскрытия информации в заголовках HTTP, которые могут быть чувствительным. Ссылка W3C о CORS говорит:

Пользовательские агенты должны отфильтровывать все заголовки ответов, отличные от тех, которые являются простыми заголовками ответов, или имя поля является ASCII-регистро-независимым совпадением для одного из значения заголовков Access-Control-Expose-Headers (если есть), прежде чем подвергать заголовки ответов API-интерфейсам, определенным в спецификациях API CORS.

blockquote>

Этот проход содержит ссылки для «простого заголовка ответа», , в котором перечислены Cache-Control, Content-Language, Content-Type, Expires, Last-Modified и Pragma. Так что те передаются. Заголовок заголовка «Access-Control-Expose-Headers» позволяет удаленному серверу выставлять другие заголовки, перечисляя их там. Дополнительную информацию см. В документации W3C.

Помните, что у вас есть одно происхождение - скажем, это веб-страница, которую вы загрузили в своем браузере, запустив немного JavaScript - и скрипт делает запрос другому происхождение, которое обычно не допускается, поскольку вредоносное ПО может делать неприятные вещи таким образом. Таким образом, браузер, выполняющий сценарий и выполняющий HTTP-запросы от своего имени, действует как гейткипер.

Браузер смотрит на ответ с этого сервера «другого происхождения» и, если он не кажется быть «участником» в CORS - требуемые заголовки отсутствуют или искажены - тогда мы не находим доверия. Мы не можем быть уверены, что скрипт, работающий локально, действует добросовестно, поскольку, похоже, он пытается связаться с серверами, которые не ожидали, что вас свяжут таким образом. Браузер, конечно же, не должен «утекать» какую-либо конфиденциальную информацию с этого удаленного сервера, просто передавая весь свой ответ сценарию без фильтрации - в основном это будет , позволяя запрос на перекрестный поиск. Будет обнаружена уязвимость в раскрытии информации.

Это может затруднить отладку, но это компромисс между безопасностью и удобством использования, поскольку, поскольку «пользователь» является разработчиком в этом контексте, безопасность имеет существенный приоритет.

1
задан Peter Mortensen 2 May 2011 в 22:48
поделиться

1 ответ

Вам придется переносить идентификатор сессии PHP в каждый запрос. То есть сделать start_session.php, который возвращает только результат session_start(); и echo session_id() и использовать это число в последующих запросах, то есть other. php?sid=XXXXX внутри other.php используйте session_id($_GET['sid']); для начала сессии.

2
ответ дан 2 September 2019 в 22:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: