我使用 Asp.net Web API 向客户端(iphone、android、mac os、web、windows、...)提供 api。我想实现一些更安全的API,我阻止其他人理解链接中的参数(以防他们破解链接)
我的问题是:我可以为此使用 Https/SSL 吗?是否足够安全?如果是,我应该在客户端安装任何东西来实现这个吗?
谢谢
我使用 Asp.net Web API 向客户端(iphone、android、mac os、web、windows、...)提供 api。我想实现一些更安全的API,我阻止其他人理解链接中的参数(以防他们破解链接)
我的问题是:我可以为此使用 Https/SSL 吗?是否足够安全?如果是,我应该在客户端安装任何东西来实现这个吗?
谢谢
这取决于您将在何处托管 ASP.NET Web API 应用程序。如果您打算将它托管在 IIS 下,除了通过 IIS 配置 SSL 之外,您不需要做任何特别的事情。
IMO 您应该做的一件事是通过您的应用程序强制使用 HTTPS。您可以使用不同的方式(例如 IIS URL 重定向模块等)来实现这一点,但您也可以使用消息处理程序在应用程序级别执行此操作:
public class RequireHttpsMessageHandler : DelegatingHandler {
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) {
if (request.RequestUri.Scheme != Uri.UriSchemeHttps) {
var forbiddenResponse = request.CreateResponse(HttpStatusCode.Forbidden);
forbiddenResponse.ReasonPhrase = "SSL Required";
return Task.FromResult<HttpResponseMessage>(forbiddenResponse);
}
return base.SendAsync(request, cancellationToken);
}
}
HttpClient
也像任何其他 .NET Web 客户端一样支持 SSL。看看这篇文章:http: //blogs.msdn.com/b/henrikn/archive/2012/08/07/httpclient-httpclienthandler-and-httpwebrequesthandler.aspx