web-dev-qa-db-ja.com

<identity impersonate = "true" />の正しい使い方

私のウェブサイトでは、ログインしたユーザーがプロフィール写真を変更できます。このプロセスには、アップロードした画像をウェブサイトのルートディレクトリのフォルダーに保存することが含まれます。

テストしたところ、権限を使用してこの特定のフォルダへのアクセスを許可する必要があるというエラーが表示されました。

私はコントロールパネルを制御できません。彼はImagesフォルダに[〜#〜] read [〜#〜]と- [〜#〜]書き込み[〜#〜]その他への権限。

もう一度テストした後、もう一度同じエラーが発生したので、web.configを編集して含めました。

<identity impersonate="true"/>

そして今、すべてが完璧に動作するようです。しかし、私はここで何をしたのですか?セキュリティ上のリスクはありますか?すべての人に自分のWebサイトへの匿名アクセスを許可しましたか?

12
Ali Bassam

しかし、私はここで何をしたのですか?

これで、クライアントユーザーのIDでWebサイトを実行しています。

セキュリティ上のリスクはありますか?

これは、このアカウントがサーバーに対して持っている権限によって異なります。通常、多くの権限を持つアカウントでWebサイトを実行することはお勧めできません。理想的には、必要なフォルダに権限を明示的に付与するアカウントで実行するようにWebサイトを構成する必要があります。

あなたのアプローチの問題は、指定されたフォルダへのアクセス権を持たない別のユーザーがあなたのウェブサイトを訪問した場合、それは彼のために機能しないことです。一方、これが予想される動作である場合は、ユーザーIDを偽装することで問題ない可能性があります。

すべての人に自分のWebサイトへの匿名アクセスを許可しましたか?

いいえ、これは認証とは関係ありません。

11
Darin Dimitrov

ログインしたユーザーの下で作業するユーザー権限が与えられました。

そして、なりすましを真実にすることにはセキュリティ上のリスクがあります。

本番環境にいる場合は、この記事を読むことをお勧めします http://support.Microsoft.com/default.aspx?scid=kb;en-us;32929

「web.configで偽装を使用すると、アプリが実行されているアプリケーションプール用に構成されたIDを上書きできます。これは、IDを制御するためのより細かい方法(アプリレベルとApplicationPoolレベル)なので、同じAppPoolで2つのアプリを実行できますが、そのうちの1つは偽装を使用して別のIDを使用します。」礼儀: アプリプールIDと偽装ID?

3
Nipun Ambastha