Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security HTTPS标题或帖子正文更安全吗?_Security_Post_Https_Header_Openid Connect - Fatal编程技术网

Security HTTPS标题或帖子正文更安全吗?

Security HTTPS标题或帖子正文更安全吗?,security,post,https,header,openid-connect,Security,Post,Https,Header,Openid Connect,发送HTTPS请求时,从安全角度看,头和帖子正文之间有什么区别吗?是否有一个更容易泄漏或拦截?若然,原因为何 我读过GET与POST以及各种身份验证和加密方案之间的比较,但没有读过Header与application/x-www-form-urlencoded POST body之间的比较。我承认我只花了大约20分钟的时间在谷歌上搜索,所以如果之前有报道,我表示歉意 虽然我相信这对所有HTTPS流量都是通用的,但我是在OpenId Connect的上下文中问这个问题的。我使用的是授权码授权类型

发送HTTPS请求时,从安全角度看,头和帖子正文之间有什么区别吗?是否有一个更容易泄漏或拦截?若然,原因为何

我读过GET与POST以及各种身份验证和加密方案之间的比较,但没有读过Header与application/x-www-form-urlencoded POST body之间的比较。我承认我只花了大约20分钟的时间在谷歌上搜索,所以如果之前有报道,我表示歉意


虽然我相信这对所有HTTPS流量都是通用的,但我是在OpenId Connect的上下文中问这个问题的。我使用的是授权码授权类型和SpringSecurityOAuth客户端库

OIDC规定,当将一次性代码交换为持久id令牌时,客户端和授权服务器可以选择发送凭据的方法。引述:

本节定义了一组客户端身份验证方法,这些方法是 用于客户端在使用时向授权服务器进行身份验证 令牌终结点。在客户注册期间,RP(客户)可 注册客户端身份验证方法。如果没有注册任何方法, 默认方法是client\u secret\u basic

这些客户端身份验证方法包括:

客户端\u机密\u基本
已接收客户端\u机密值的客户端 从授权服务器使用授权进行身份验证 符合OAuth 2.0[RFC6749]第2.3.1节的服务器,使用 HTTP基本身份验证方案

注意,这是
Authorization:Basic
标题。我正在与之集成的提供程序通过OpenId client_id和client_secret支持这一点,并使用冒号和Base64编码连接

客户秘密帖子
客户认为 已从授权服务器接收到客户端\u机密值, 根据第节向授权服务器进行身份验证 OAuth 2.0[RFC6749]的第2.3.1节,在请求正文中包含客户端凭据

我还没有找到任何特定于OpenId Connect的方法来表达两种方法之间的偏好


我正在与一个允许任何一种方法的OIDC提供程序集成,但是您必须选择,并且所有依赖的资源服务器必须符合单一选择。标题和帖子正文均以纯文本形式发送。(请注意,此提供商不支持敏感机密的HMAC SHA编码版本的
client_secret_jwt
方法,也不支持公私签名的
private_key_jwt
方法,两者都明显比纯文本值更安全,但不清楚这是否增加了任何实际的安全性。)对TLS/SSL加密通信的改进。)

OAuth 2.0更喜欢HTTP基本身份验证以及以下内容:

不建议使用这两个参数在请求正文中包含客户端凭据,并且应限于无法直接使用HTTP基本身份验证方案(或其他基于密码的HTTP身份验证方案)的客户端


您可以放心地假设这也会转化为OIDC。

虽然Pieter指出了规范,但我也想到了最佳实践

给定一个帖子正文可以包含任何信息,浏览器、代理实现或API都无法尊重正文中嵌入的秘密。相比之下,授权标题由RFC7235定义和维护,这是一个标准

“Authorization”标头字段允许用户代理进行身份验证 它本身带有一个源服务器——通常,但不一定,在 接收401(未经授权)响应。其价值包括 包含用户身份验证信息的凭据 正在请求的资源领域的代理

更多关于代理

转发请求的代理不得修改任何授权字段 在这项请求中。有关和的详细信息,请参见[RFC7234]第3.2节 与处理授权字段有关的要求 HTTP缓存


因此,作为一个被各方充分理解的头文件,它应该是传输凭证的最安全的方式。希望这种想法能帮助其他人做出设计决策。

您使用哪种补助金类型?您使用的客户端类型是什么?