7

私のサイトは匿名ユーザーを許可しています。重い負荷がかかると、匿名ユーザーが他のユーザーからプロファイル値を取得することがあることがわかりました。

最初に Cookie を削除し、Cookie 値 .ASPXANONYMOUS で有効な一意の値を取得します。いくつかのリクエストの後、別のユーザーによって既に使用されている .ASPXANONYMOUS の新しい値を取得します。ログを見ると、.ASPXANONYMOUS で同じ値を共有するユーザーが常に 2 人いることがわかります。

私のログを見ると、IP が異なっていても、2 人以上のユーザーが .ASPXANONYMOUS に対して実際に同じ Cookie 値を取得していることがわかります。

これが http トラフィックです。2 番目の画像では、変化する Cookie が示されています (ログを読み取るには、画像をフル サイズで表示する必要があります)。

正常に機能する多くのリクエストの 1 つ:

代替テキスト http://img413.imageshack.us/img413/2711/log1.gif

次に、Cookie の 代替テキスト http://img704.imageshack.us/img704/8175/log2.gifを変更するこの 1 つの要求があります。

次に、新しいCookieが使用されます

代替テキスト http://img704.imageshack.us/img704/3818/log3.gif

安全のために、依存性注入を削除しました。OutputCaching は使用しません。

私のweb.configには、認証用の次の設定があります。

 <anonymousIdentification enabled="true" cookieless="UseCookies" cookieName=".ASPXANONYMOUS" 
      cookieTimeout="30" cookiePath="/" cookieRequireSSL="false" cookieSlidingExpiration="true" />

  <authentication mode="Forms">
        <forms loginUrl="~/de/Account/Login" />
    </authentication>

他に何をログに記録できるか、または何を見なければならないかを知っている人はいますか?

アップデート

私が示した http-traffic が完全に有効であることがわかりました。.ASPXANONYMOUS の値の変更は、Cookie が更新されるために発生するものです。値には AnonymousID と Timestamp が含まれます。

これにより、通常の状態では、ユーザーが .ASPXANONYMOUS で同じ値を持つことにはなりません。

問題は、匿名識別モジュールから Cookie が設定されるたびに、何人かのユーザーがこの Cookie を取得する可能性があることです。アプリケーションに Cookie を設定しても、この奇妙な副作用はありません。

4

2 に答える 2

3

私は同じ問題を抱えていました。解決策は、SetCookie を呼び出す応答の出力キャッシュをオフにすることでした。以下は、これを説明するいくつかのリンクです

于 2011-09-23T04:36:05.957 に答える
1

コード内で静的変数を宣言していますか? 私はこの同様の問題を抱えていましたが、それに絞り込みました。少なくとも私の状況では。

于 2010-03-17T23:24:11.600 に答える