我的网站允许匿名用户。我看到在重负载下匿名用户有时会从其他用户那里获得配置文件值。
我首先删除我的 cookie 并在 cookie 值 .ASPXANONYMOUS 中获得一个有效的唯一值。经过几次请求后,我得到了 .ASPXANONYMOUS 的新值,该值已被另一个用户使用。我在我的日志中看到,总是有几个用户在 .ASPXANONYMOUS 中共享相同的值。
我可以在我的日志中看到 2 个或更多用户确实为 .ASPXANONYMOUS 获得了相同的 cookievalue,即使他们拥有不同的 IP。
这是http流量。在第二张图片中显示了更改的 cookie(您必须显示完整大小的图片才能读取日志):
许多工作正常的请求之一:
替代文字 http://img413.imageshack.us/img413/2711/log1.gif
然后有一个请求会更改 cookie 替代文本 http://img704.imageshack.us/img704/8175/log2.gif
然后使用新的cookie
替代文字 http://img704.imageshack.us/img704/3818/log3.gif
为了安全起见,我删除了依赖注入。我不使用输出缓存。
我的 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 中具有相同的值。
真正的问题是,每当从 AnonymousIdentificationModule 中设置 cookie 时,就有可能有几个用户得到这个 cookie。在我的应用程序中设置 cookie 没有这种奇怪的副作用。