重命名ASP.NET会话Cookie名称的原因?

时间:2009-08-18 08:03:03

标签: asp.net session-cookies

有什么理由(安全?)为什么有人应该重命名 ASP.NET会话Cookie名称,还是仅仅是一个毫无意义的ASP.NET选项?

6 个答案:

答案 0 :(得分:14)

如果在同一服务器上有多个应用程序在同一个域下运行,您可能希望每个应用程序都有单独的会话cookie名称,这样它们就不会共享相同的会话状态,或者更糟糕的是仍然会相互覆盖。

另请参阅Forms Auth cookie name的说明:

  

指定用于身份验证的HTTP cookie。如果在单个服务器上运行多个应用程序,并且每个应用程序都需要唯一的cookie,则必须在每个应用程序的每个Web.config文件中配置cookie名称。

答案 1 :(得分:2)

1)它可能(略微)减慢某人(随便)寻找它的人。

2)您可能希望隐藏运行ASP.NET

的事实

答案 2 :(得分:1)

以下链接提供了有关为何应重命名会话Cookie的详细信息。

https://www.owasp.org/index.php/Session_Management_Cheat_Sheet

“会话ID使用的名称不应过于描述,也不应提供有关ID的目的和含义的不必要的详细信息。

最常见的Web应用程序开发框架使用的会话ID名称可以很容易地被指纹识别[0],例如PHPSESSID(PHP),JSESSIONID(J2EE),CFID& CFTOKEN(ColdFusion),ASP.NET_SessionId(ASP .NET)等。因此,会话ID名称可以公开Web应用程序使用的技术和编程语言。

建议将Web开发框架的默认会话ID名称更改为通用名称,例如“id”。“

答案 3 :(得分:0)

我认为这主要是品味问题。有些人/公司希望控制其Web应用程序的各个方面,并且可能只使用其他名称与其他cookie名称保持一致。例如,如果您在整个应用程序中使用非常短的单字符参数名称,则可能不喜欢ASPSESSID等会话cookie名称。

安全原因可能适用,但我认为security through obscurity相当弱。

答案 4 :(得分:0)

使用cookie prefixes,可以通过特殊方式将安全属性添加到cookie中。因此,在这种情况下,重命名ASP.NET会话cookie确实会对安全性产生影响:

  • __Secure-… Cookie只能从安全(HTTPS)网站写入。
  • __Host-… Cookie只能从相同的安全域写入。因此,不是来自子域或不安全(HTTP)站点。

答案 5 :(得分:0)

根据现代浏览器实现的以下规范https://tools.ietf.org/html/draft-ietf-httpbis-cookie-prefixes-00,使用前缀使事情更加安全。

3.1。 “ __Secure-”前缀

如果cookie的名称以“ __Secure-”开头,则该cookie必须为:

  1. 设置“安全”属性
  2. 从URI设置,该URI的“方案”被用户视为“安全” 代理商。

    从任何来源设置以下cookie都会被拒绝,因为 未设置“安全”标志

    Set-Cookie:__Secure-SID = 12345; Domain = example.com

    如果从安全来源设置以下内容,则可以接受
    (例如“ https://example.com/”),否则被拒绝:

    Set-Cookie:__Secure-SID = 12345;安全; Domain = example.com

3.2。 “ __Host-”前缀

如果cookie的名称以“ __Host-”开头,则该cookie必须为:

  1. 设置“安全”属性
  2. 从用户认为其“方案”为“安全”的URI进行设置 代理商。
  3. 仅发送给设置cookie的主机。也就是说,一个cookie 不得在“ https://example.com”中设置名为“ __Host-cookie1”的名称 包含“域”属性(因此将仅发送到 “ example.com”,而不是“ subdomain.example.com”)。
  4. 发送到每个主机请求。也就是说,一个名为 “ __Host-cookie1”必须包含一个“ Path”属性,其值为 “ /”。

    以下cookie总是会被拒绝:

    Set-Cookie:__Host-SID = 12345; Set-Cookie:__Host-SID = 12345; 安全Set-Cookie:__Host-SID = 12345;域= example.com
    Set-Cookie:__Host-SID = 12345; Domain = example.com;路径= /
    Set-Cookie:__Host-SID = 12345;安全; Domain = example.com;路径= /