我使用Asp.net web API为客户端提供api(iphone,android,mac os,web,windows,...)。我想实现一些具有更高安全性的API,我阻止其他一些人理解链接中的参数(以防他们破解链接)
我的问题是:我可以使用Https / SSL吗?它足够安全吗?如果是,我应该在客户端安装任何东西来实现吗?
由于
答案 0 :(得分:12)
这取决于您将托管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