Подтвердить что ты не робот

Почему нужны Access-Control-Expose-Headers?

Я искал конкретные соображения безопасности о том, почему это было добавлено. Это был своего рода момент WTH, когда я реализовал корс и мог видеть все возвращаемые заголовки, но я не мог получить к ним доступ через javascript..

4b9b3361

Ответ 1

CORS реализуется таким образом, что он не нарушает предположений, сделанных в пред-CORS, мире с одним и тем же происхождением.

В мире pre-CORS клиент может инициировать запрос перекрестного происхождения (например, с помощью тега script), но он не смог прочитать заголовки ответов.

Чтобы гарантировать, что CORS не нарушит это предположение, спецификация CORS требует, чтобы сервер выдавал явные разрешения клиенту читать эти заголовки (через заголовок Access-Control-Expose-Headers). Таким образом, несанкционированные запросы CORS ведут себя так же, как в мире до CORS.

Ответ 2

Это довольно хороший вопрос. Просматривая http://www.w3.org/TR/cors/#simple-response-header, неясно, зачем вам это нужно или нужно сделать.

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

По умолчанию длина контента не является допустимым заголовком, поэтому я столкнулся с той же проблемой (позже, когда мне нужно было получить доступ к WebDAV и пришлось модифицировать допустимые параметры). CORS действительно не имеет большого смысла (для меня), поэтому меня это не удивило бы, если бы это были капризы.