gpt4 book ai didi

http - 使用具有相同值的重复响应 header 可以吗?

转载 作者:可可西里 更新时间:2023-11-01 16:25:32 26 4
gpt4 key购买 nike

我发现一个响应,其中应用程序使用具有相同值的重复 header 。谁能告诉我,这是一个好的编程实践,还是用于安全角度或其他任何方面?

 HTTP/1.1 200 
Accept-Ranges: bytes
Cache-Control: no-cache, must-revalidate, private
Content-Type: text/html
Date: Mon, 20 Nov 2017 04:08:51 GMT
Expires: 0
Last-Modified: Thu, 16 Nov 2017 14:04:48 GMT
Pragma:
Public-Key-Pins: pin-sha256="5w0XrTCAbsVO7vTngDViNHPutlvB43qYionPbpV2ky0=";
max-age=5184000; includeSubDomains;
Server: Any
Set-Cookie: ********************* httponly; secure; path=/
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Content-Type-Options: nosniff
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Content-Length: 559
Connection: Close

此应用程序使用具有相同值的重复 X-Content-Type-Options header 、Strict-Transport-Security、X-Frame-Options header 。我在 stackoverflow 上发布了这个问题,但没有找到任何回复。

最佳答案

来自 RFC2616

Multiple message-header fields with the same field-name MAY be present in a message if and only if the entire field-value for that header field is defined as a comma-separated list [i.e., #(values)]. It MUST be possible to combine the multiple header fields into one "field-name: field-value" pair, without changing the semantics of the message, by appending each subsequent field-value to the first, each separated by a comma. The order in which header fields with the same field-name are received is therefore significant to the interpretation of the combined field value, and thus a proxy MUST NOT change the order of these field values when a message is forwarded

所以

Cache-Control: no-cache
Cache-Control: must-revalidate
Cache-Control: private

会好的。我不相信这适用于此。如果具有重复的 header 条目是有效的,则将取决于每个 header 是否允许具有重复值。

从安全的角度来看,如果这些行中的任何一行不合法,则没有定义客户端将如何处理它们——因此忽略它们可能是一个有效的选择。因此,无论是糟糕的做法还是我认为这在技术上都是一种风险。

从实际的角度来看,我可以想象客户有几种处理方法。

  • 显而易见的选择是他们只接受他们遇到的第一个或最后一个条目。鉴于这些是重复的,所以不会成为问题。
  • 安全的选择是让请求出错。
  • 一个更明智的选择是将两者都传递给处理程序并让其决定。即,对于基于安全的 header ,始终使用更严格的值。
  • 另一种选择是将 header 连接到 csv 中并将其传递给处理程序 - 这将涵盖合法的重复 header 情况。
  • 最坏的情况是客户端忽略标题。

关于http - 使用具有相同值的重复响应 header 可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48012994/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com