私は理解できないようなWCFサービスへの呼び出しに関するセキュリティコンセプトがあります。サービスコールを保護するSilverlightとWCF RIA。何か不足していますか?
Silverlightソリューションのサンプルを作成し、WCF RIAを有効にしました。
私は呼び出し操作(またはそのことについては、自動生成されたCRUDのいずれか)私は[RequiresAuthentication()]で注釈を付けましたが、持っている:
[RequiresAuthentication()]
[Invoke]
public void DeleteResource(string id)
{
//...
}
次へ]を、私は、フォームを有効にするには、web.configファイルを変更しました認証:
<system.web>
<httpModules>...</httpModules>
<compilation>...</compilation>
<authentication mode="Forms" />
</system.web>
認証されたユーザーだけがこのメソッドを呼び出すことができます。したがって、クライアントで認証する必要があります。
FormsAuthentication auth = new FormsAuthentication();
auth.Login(textBoxUsername.Text, textBoxPassword.Text);
ログインが成功すると、メソッドが呼び出されます。
このプロセスを通じてフィドラーを見たとき、私は二つのことがわかります。
- のSet-Cookie:.ASPXAUTH = F8FFB8B .....(ログインステップから)
- http://localhost:1107/.../DomainService.svc/binary/DeleteResource(メソッドを再ように私のアプリに
- ログイン:)
と呼ばれているので、有害なユーザーは、次の操作を行うことができますgular user(彼は登録して資格を持っています)。
- アプリを操作している間にFiddlerを開き、先ほど説明したCookieとURLをコピーします。
- Cookieを使用してそのURLへのHTTP呼び出しを作成し(例:C#Webclientを使用)、リソースの削除を開始します。
これが可能であれば、どうすればこのセキュリティホールをブロックできますか?
もしそうでなければ、ユーザーはそれを何の妨げにしていますか?