2
WCFサービスの「ヘルプ」URLに異なるセキュリティポリシーを適用する必要があります。 WCFサービスの完全なURL、つまりSession
またはSession.svc
を入手するにはどうすればよいですか?WCFヘルプページでの認証なしでのCheckAccessCore(ctx)の変更
http://localhost:62302/Session.svc/help
http://localhost:62302/Session.svc/help/operations/GetSession
http://localhost:62302/Session/help
http://localhost:62302/Session/help/operations/GetSession
セキュリティに関連しているので、私はコミュニティに対して何かを考え出す必要があります。私は、文字列は「ヘルプ」で終わる場合、単純にチェックし、盲目的に(明らかに間違っていた)そのクエリを許可The author here suggests
コードは、これはオーバーかもしれ
public class APIKeyAuthorization : ServiceAuthorizationManager
{
protected override bool CheckAccessCore(OperationContext operationContext)
{
if (this.IsHelpPage(operationContext.RequestContext.RequestMessage) || IsValidAPIKey(operationContext))
{
return true;
}
else
{
string key = GetAPIKey(operationContext);
// Send back an HTML reply
CreateErrorReply(operationContext, key);
return false;
}
}
private bool IsHelpPage(Message requestMessage)
{
return requestMessage.Headers.To.AbsolutePath.ToLower().EndsWith("help");
}
}
"著者は、文字列が"ヘルプ "で終わっているかどうかを確認し、そのクエリを盲目的に許可するかどうかを単に確認することを提案しています(明らかに間違っています)。うん、 'http://example.com/extremely-sensitive-page?now-i-pwn-you = help'はセキュリティポリシーから免除されるべきだからです。 –
初心者のために明確にするために...マイクは皮肉です;) – LamonteCristo