我是否需要对所有请求标头进行base64编码?

时间:2013-12-31 18:11:37

标签: c# asp.net-web-api

我正在编写C#Web API。现在我正在进行身份验证。每个请求都将通过SSL完成,并要求用户通过SSL发出请求。

我想知道的是,如果我需要让用户在请求数据或进行身份验证时发送Base64编码字符串。它会是这样的。

登录方法控制器:

Public bool Login (User user)

用户包括:

{“Username”:“chris”,“Password”:“doggie”}

在这种情况下,Base64是否最好在请求标头中编码chis和doggie?或者这不是必要的吗?我是否需要在所有请求中发送base 64编码的字符串?

1 个答案:

答案 0 :(得分:1)

就安全性而言,只要您使用SSL,这并没有什么不同。

但是,如果所有请求都需要发送用户名和密码,则将抽象此信息转换为Authorization标头更有意义,以便将其与实际请求有效负载分开。

如果您决定使用基本身份验证,则需要在Authorization标头中将用户名和密码作为Base64编码的字符串发送。在此示例中,这是Authorization标头的外观:

Authorization: Basic Y2hyaXM6ZG9nZ2ll

我可能会弄错,但通过阅读您的问题,我觉得您认为Base64实际上保护了错误的用户名和密码。 Base64是可逆的,因此绝不用于任何安全性。这只是在HTTP请求中发送正确编码的二进制数据的便捷方式。