“requireSSL” 属性未设置为 true¶
ID: cs/web/requiressl-not-set
Kind: problem
Security severity: 7.5
Severity: error
Precision: high
Tags:
- security
- external/cwe/cwe-319
- external/cwe/cwe-614
Query suites:
- csharp-code-scanning.qls
- csharp-security-extended.qls
- csharp-security-and-quality.qls
使用 HTTP 传输的敏感数据容易被第三方读取。默认情况下,Web 表单和 Cookie 通过 HTTP 发送,而不是 HTTPS。可以通过在 Web.config
中将 requireSSL
属性设置为 “true”
来更改此设置。
建议¶
使用 Web 表单时,请确保 Web.config
包含一个带有属性 requireSSL="true"
的 <forms>
元素。
使用 Cookie 时,请确保使用 SSL,可以通过上面的 <forms>
属性或带有属性 requireSSL="true"
的 <httpCookies>
元素来实现。还可以通过以编程方式将属性 System.Web.HttpCookie.Secure
设置为 true
来要求 Cookie 使用 SSL。
示例¶
以下示例显示了在 Web.config
文件中指定 requireSSL="true"
的位置。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<authentication>
<forms
requireSSL="true"
... />
</authentication>
<httpCookies
requireSSL="true"
... />
</system.web>
</configuration>
参考¶
MSDN:HttpCookie.Secure 属性、FormsAuthentication.RequireSSL 属性、forms 元素(用于身份验证)、httpCookies 元素。
常见弱点枚举:CWE-319。
常见弱点枚举:CWE-614。