ASP.NET - cookieless = UseCookies - 浏览器中只有会话ID?没有客户端cookie?

问题描述 投票:0回答:1

我正在开发asp.net(4.0)网站。我试图使用表单身份验证()。显然试图让一些页面安全。我理解安全性的最佳解决方案是设置cookieless =“UseCookies”,这样就不会将id写入URL。

我的问题是当我使用cookieless =“UseCookies”时究竟发生了什么。

  1. 是否创建了会话并将一些id存储在浏览器中(〜稍后用于从IIS服务器端会话“cookie”中提取信息的内存)或者它实际上是配偶创建“常规”客户端加密cookie?

(我显然试图避免写入URL和客户端cookie - 不确定是否所有这些都可以避免)

  1. 如果它在浏览器中设置ID,则所有浏览器都允许在其中存储会话ID。如果浏览器不允许这样做会发生什么?有没有办法预检?

所以我想我们所有人,我只是想建立适当的安全应用程序,如果有人得到任何其他建议,将非常感谢。

坦克很多,

asp.net security cookieless
1个回答
0
投票

如果您允许cookie设置cookieless =“false”,则sessionID将存储在cookie中,并且可以在整个会话期间访问(默认情况下为20分钟)。

如果您允许cookie并且用户将在浏览器中禁用cookie,则sessionID将不会存储在任何地方,并且每次用户创建新请求(通过转到另一页)时,他将获得新的sessionID,因此不能保留数据。

您可以使用cookieless =“true”来加密并将sessionID附加到URL,这样即使他的cookie已启用,用户也可以保持会话。

还有一个cookieless =“AutoDetect”,它将确定用户是否已禁用或启用了cookie,并且基于此将创建带有sessionID的cookie或将其扔到URL。这样做的缺点是,对页面的每个请求都会产生3个请求,一个请求确定用户是否启用了cookie,使用第一个请求的结果附加查询字符串,第三个请求将用户带到适当的URL。

还有一个设置可以根据浏览器的数据关闭和打开cookie。因此,如果有人用10年前的手机浏览您的页面,它可能会将cookie附加到URL,因为没有选项允许在该设备上使用cookie。

我希望这有帮助。我个人会告诉用户启用cookie,甚至不担心其他情况,但有些人(例如我的老板)不喜欢这个想法,并希望每个人都支持。

© www.soinside.com 2019 - 2024. All rights reserved.