有什么理由(安全?)为什么有人应该重命名 ASP.NET会话Cookie名称,还是仅仅是一个毫无意义的ASP.NET选项?
答案 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必须为:
- 设置“安全”属性
从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必须为:
- 设置“安全”属性
- 从用户认为其“方案”为“安全”的URI进行设置 代理商。
- 仅发送给设置cookie的主机。也就是说,一个cookie 不得在“ https://example.com”中设置名为“ __Host-cookie1”的名称 包含“域”属性(因此将仅发送到 “ example.com”,而不是“ subdomain.example.com”)。
发送到每个主机请求。也就是说,一个名为 “ __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;路径= /