我有一个客户端,该客户端将XML文档发布到需要基本身份验证的服务器上。负载和基本身份验证标头是否包含在同一请求中,还是在发送负载之前进行身份验证?我正在尝试将敏感信息发送到服务器?即使身份验证失败,服务器仍然可以访问敏感信息吗?
概念上,请求标头(包括Authorization使用的basic authentication标头)和请求消息正文(将在其中复制XML文档的地方)是同一条消息的一部分。
该消息可能分散在多个数据包中。
在某些情况下(例如,与Expect标头一起使用时,请求正文将与正文分开发送。
授权标头描述的是客户端,而不是服务器-如果您将未加密的数据发送到服务器,则它当然可以读取它。
通常的答案是对整个http请求进行加密,以便只能由可以访问加密密码的另一半的进程读取。在最常见的用例中,我们使用HTTPS来确保只能由可以访问服务器机密的计算机读取请求;客户授权仍然通过标题进行。
有些替代方法是,客户端通过在消息的加密中使用特定的秘密来证明其身份(服务器通过正确的匹配件成功解密了消息的事实,知道客户端是真实的)。