我如何使用 ASP.NET MVC(或核心)来检测和重定向无 cookie 会话?
How can I use ASP.NET MVC (or Core) to detect and redirect cookieless sessions?
我正在创建一个网站,有安全意识(偏执狂)的人可能会阻止 cookie,甚至身份验证 cookie。
我想检测这个实例,并重定向到描述 corresponding risks with cookieless sessions.
的 FAQ/Help 页面
你在混淆术语,所以有点不清楚你在说什么。会话要么是无 cookie 的,要么不是。如果您在 ASP.NET 中使用无 cookie 会话,则每个会话都是无 cookie 的。因此,警告用户他们被迫使用的东西存在固有的安全风险是毫无意义的。如果您不使用无 cookie 会话,那么每个会话都需要一个 cookie,同样没有必要警告用户一些甚至不适用于他们的事情。
在这里唯一有意义的是要求会话 cookie(无 cookie 会话),然后通知没有启用 cookie 的用户他们将无法使用您网站中需要 cookie 的部分(经过身份验证的区域和您可能使用会话的其他地方)。为此,您可以使用 JavaScript 来检测是否通过 navigator.cookieEnabled
启用了 cookie,或者您可以 server-side 通过:
- 设置 cookie 或只是将某些内容保存到会话中(这将需要设置 cookie)
- 重定向
- 检查之前设置的 cookie 或会话数据
如果它在重定向后存在,则 cookie 已启用。如果不是,则它们被禁用。
我正在创建一个网站,有安全意识(偏执狂)的人可能会阻止 cookie,甚至身份验证 cookie。
我想检测这个实例,并重定向到描述 corresponding risks with cookieless sessions.
的 FAQ/Help 页面你在混淆术语,所以有点不清楚你在说什么。会话要么是无 cookie 的,要么不是。如果您在 ASP.NET 中使用无 cookie 会话,则每个会话都是无 cookie 的。因此,警告用户他们被迫使用的东西存在固有的安全风险是毫无意义的。如果您不使用无 cookie 会话,那么每个会话都需要一个 cookie,同样没有必要警告用户一些甚至不适用于他们的事情。
在这里唯一有意义的是要求会话 cookie(无 cookie 会话),然后通知没有启用 cookie 的用户他们将无法使用您网站中需要 cookie 的部分(经过身份验证的区域和您可能使用会话的其他地方)。为此,您可以使用 JavaScript 来检测是否通过 navigator.cookieEnabled
启用了 cookie,或者您可以 server-side 通过:
- 设置 cookie 或只是将某些内容保存到会话中(这将需要设置 cookie)
- 重定向
- 检查之前设置的 cookie 或会话数据
如果它在重定向后存在,则 cookie 已启用。如果不是,则它们被禁用。