13

Asp.net Web API を使用して、API をクライアント (iphone、android、mac os、web、windows、...) に提供します。よりセキュリティの高いAPIを実装したいので、他の人がリンク内のパラメーターを理解するのを防ぎます(リンクがハッキングされた場合)

私の質問は、これに Https/SSL を使用できますか? 安全性は十分ですか?はいの場合、これを実装するためにクライアント側に何かをインストールする必要がありますか?

ありがとう

4

1 に答える 1

15

ASP.NET Web API アプリケーションをホストする場所によって異なります。IIS でホストする場合は、IIS を介して SSL を構成する以外に特別なことをする必要はありません。

IMO で行うべきことの 1 つは、アプリケーションで 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

于 2012-10-23T15:42:17.277 に答える