我发现一个响应,其中应用程序使用相同值的重复头。有谁能告诉我,这是一个好的编程实践,还是用于安全性或其他方面?
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-内容-类型-选项头、严格-传输-安全、X-框架-选项头。
这是编程/配置错误。RFC 7230(第3.2.2节)规定:
发件人不得在消息中生成具有相同字段名的多个报头字段,除非该报头字段的整个字段值被定义为逗号分隔的列表[,即#(值)]或者报头字段是众所周知的异常(如上所述)下面)。
因此,使用如下多个标题:
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
Strict-Transport-Security: max-age=31536000; includeSubDomains
是未定义的行为。同一节说:
收件人可以将具有相同字段名的多个标题字段组合成一个“字段名:字段值”对,而不改变消息的语义,方法是将每个后续字段值按顺序附加到组合字段值,并用逗号分隔。
因此,对上述标题的一种可能的解释是:
Strict-Transport-Security: max-age=31536000 ; includeSubDomains, max-age=31536000; includeSubDomains
根据https://www.rfc-editor.org/rfc/rfc6797#section-6.1,其语法无效并且可能被拒绝(并且结果是,不应用HSTS策略)。
请注意,并非所有实现都遵循此指定行为。例如,Python http库只返回一个标题列表,在上述情况下,它可能如下所示:
[
# ...
('Strict-Transport-Security', 'max-age=31536000 ; includeSubDomains'),
('Strict-Transport-Security', 'max-age=31536000; includeSubDomains')
# ...
]
根据实现情况,至少有以下三种行为是可能的:
验证和使用之间的解释不匹配可能会导致攻击,尽管这对HSTS头来说可能不会很严重。
我有一个这样的对象数组: 我希望每个人(名字)都有一个对象,并添加他们的对象。 因此,最终阵列将是: 我使用的真正数组非常大,这就是为什么我正在寻找最有效的方法。
目前,我有一个类分数,它允许我用三种不同的方式创建分数 对于一个整数,在这种情况下,给定的整数将是分子,分母将设置为1 有2个整数,分子和分母 最后一种方法是解析一个字符串,该字符串必须与REGEX-?\d/[1-9]\d* gcd将尽可能减少生成的分数。 我现在想实现的是,具有相同分子和分母的分数实例具有相同的引用例如。 应该返回true。 我研究了一些关于泛型和边界的章节,但我不确定这是否是我
我有一个数据集,如下所示:
如何检查数组中的所有元素是否相同? 这是我想到的唯一解决办法。我想知道有没有有效的?
API的成功响应具有json格式(基于avro模式)。对于错误,它是否应该为异常定义另一种格式(模式)?或者成功的响应应该包括错误部分?发生错误时,将其他部分留空,只填充错误。 这更像是一个内部应用编程接口,需要定义各种自定义异常消息。它是否应该对所有此类应用程序错误使用相同的HTTP状态代码? 这些决定如何影响OPEN API(SWAGGER)?
问题内容: 我有两个数组:一个数组填充了来自ajax请求的信息,另一个数组存储了用户单击的按钮。我使用以下代码(我填写了示例编号): 但是,即使两个数组相同,但名称不同,它总是给出。(我在Chrome的JS控制台中对此进行了检查)。那么,有什么办法可以知道这两个数组是否包含相同的数组?为什么给?我怎么知道第一个数组中的哪个值不在第二个数组中? 问题答案: 请注意,这不会像以前的答案那样修改原始数组