我正在设置一个新的 WebAPI 服务器(ASP NET),我们使用 HTTPS 并检查通过消息头传递的有效密码。
服务器端,我可以检查每个包是否通过 HTTPS 传递,以及它是否包含正确的标头和密码信息。
我的问题是:我们在 API 客户端上使用 refit,将密码作为标题插入到每个包中。客户端是否可以传递标头或未加密的单个消息?
这是代码:
连接和初始化
var httpClient = new HttpClient(new AuthenticatedHttpClientHandler())
{
BaseAddress = new Uri("https://10.103.208.16:45456/")
};
var nsAPI = RestService.For<Interface1>(httpClient);
方法调用:
var sugars = await nsAPI.GetMakeUps();
插入密码的HttpHandler
class AuthenticatedHttpClientHandler : HttpClientHandler
{
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
request.Headers.Add("pw", "MY_SECRET_PW");
return await base.SendAsync(request, cancellationToken).ConfigureAwait(false);
}
}
我是否有可能在未加密的情况下嗅探密码?我可以强制改装以仅通过 HTTPS 连接进行通信/发送包吗?