Cookie 安全性:域过于宽泛¶
ID: cs/web/broad-cookie-domain
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(例如“.mybank.com”)可以由部署在此域及其子域上的所有 Web 应用程序访问。因此,包含敏感数据但域过于宽泛的 Cookie 可能会被安全性较低且不受信任的应用程序读取和篡改。
建议¶
精确定义此 Cookie 对其有效的 Web 应用程序的域。
示例¶
在此示例中,cookie1
可从 online-bank.com 访问。cookie2
可从 ebanking.online-bank.com 和 ebanking.online-bank.com 的任何子域访问。
class CookieWithOverlyBroadDomain
{
static public void AddCookie()
{
HttpCookie cookie1 = new HttpCookie("sessionID");
cookie1.Domain = "online-bank.com";
HttpCookie cookie2 = new HttpCookie("sessionID");
cookie2.Domain = ".ebanking.online-bank.com";
}
}
在以下示例中,cookie
只能从 ebanking.online-bank.com 访问,这要安全得多。
class CookieWithOverlyBroadDomainFix
{
static public void AddCookie()
{
HttpCookie cookie = new HttpCookie("sessionID");
cookie.Domain = "ebanking.online-bank.com";
}
}
参考¶
MSDN:HttpCookie.Domain 属性。
常见弱点枚举:CWE-287。