Cookie 安全性:路径过于宽泛¶
ID: cs/web/broad-cookie-path
Kind: problem
Security severity: 9.3
Severity: warning
Precision: high
Tags:
- security
- external/cwe/cwe-287
Query suites:
- csharp-code-scanning.qls
- csharp-security-extended.qls
- csharp-security-and-quality.qls
此规则查找路径过于宽泛的 Cookie。路径过于宽泛的 Cookie(例如根上下文路径“/”)可由同一域名上的所有 Web 应用程序访问。因此,包含敏感数据但路径过于宽泛的 Cookie 可能会被安全性较低且不受信任的应用程序读取和篡改。
建议¶
精确定义此 Cookie 所属 Web 应用程序的路径。
示例¶
在此示例中,所有应用程序都可以访问该 Cookie,无论其路径如何。很可能其中一些应用程序的安全性低于其他应用程序,甚至不需要访问相同的 Cookie。
class CookieWithOverlyBroadPath
{
static public void AddCookie()
{
HttpCookie cookie = new HttpCookie("sessionID");
cookie.Path = "/";
}
}
在以下示例中,只有“/ebanking”路径下的 Web 应用程序才能访问该 Cookie。
class CookieWithOverlyBroadPathFix
{
static public void AddCookie()
{
HttpCookie cookie = new HttpCookie("sessionID");
cookie.Path = "/ebanking";
}
}
参考¶
MSDN:HttpCookie.Path 属性。
通用缺陷枚举:CWE-287。