2015-06-05 5 views
0

Верно ли, что вы не можете добавить/изменить заголовок 307, кроме местоположения? Я пытаюсь сделать это в Node.js и кажется, что новый добавленный заголовок «X-Atlassian-Token»: «no-check» не используется клиентом.Добавление заголовков в перенаправление 307

res.writeHead(307, 
     { 
      'Location': 'http://www.mytest.com?os_authType=basic', 
      'Content-Type': 'multipart/form-data', 
      'X-Atlassian-Token': 'no-check' 
     }); 
    res.end(); 

Кто-то задал тот же вопрос о Stackoverflow и один человек ответил -

Is it possible to set some http headers while http-redirect(302 or 307)?

«На самом деле, через объекты Java, вы можете установить свойства запроса, но не заголовки я ищу. Ответ на это сам. Я считаю, что это преднамеренное ограничение, чтобы предотвратить подделку идентификационных токенов и другую информацию, отправленную через заголовки. Я отправлю решение, если найду его.

ответ

0

Это правда, что вы не можете добавить/изменить заголовок 307, кроме местоположения?

Нет, это неправда. Выполнение кода показывает ответ, включающий как указанный код статуса и дополнительных заголовков:

HTTP/1.1 307 Temporary Redirect 
Location: http://www.mytest.com?os_authType=basic 
Content-Type: multipart/form-data 
X-Atlassian-Token: no-check 
Date: Sat, 06 Jun 2015 13:40:41 GMT 
Connection: keep-alive 
Transfer-Encoding: chunked 

Если это не имеющей эффекта вы ожидаете, увидеть this other answer to the same question:

Вы должны также гарантировать, что ваши заголовки ответа обратитесь к этому ответу, а не к ресурсу, к которому перенаправляется клиент.

То есть, X-Atlassian-Token: no-check заголовка не быть проведен по запросу на последующем (и, в частности, не будет послан клиентом).

+1

Я должен был сформулировать свой вопрос лучше. Я знал, что новый заголовок был отправлен обратно клиенту. Я имел в виду, что клиент не будет использовать все атрибуты, которые я добавил в новый заголовок в запросе на последующий запрос, кроме местоположения. Но спасибо за подтверждение того, что клиент не будет. – user30646

+0

В противном случае вы можете заставить клиента сделать запрос с помощью «X-Atlassian-Token: no-check», который будет именно уязвимостью XSRF, которую этот заголовок предназначен для предотвращения. – Joe

Смежные вопросы