默认状态:始终启用
严重性级别:警告
Description
该规则检测与密码相关名称的函数或脚本参数,这些参数声明时使用 string 类型而非类型 SecureString 。 接受明文的密码参数会暴露密码,可能危及系统安全。 你不应该接受密码作为纯文本。
相反,使用 SecureString 类型来安全存储密码。
以下参数被视为密码参数,不区分大小写:
- 密码
- 通过
- Passwords
- 通行短语
- 口令
- PasswordParam
如果你定义了一个参数,名字来自提供的列表,请用 SecureString 类型声明它。
Example
非符合性
function Test-Script
{
[CmdletBinding()]
Param
(
[string]
$Password
)
...
}
合规的
function Test-Script
{
[CmdletBinding()]
Param
(
[SecureString]
$Password
)
...
}
配置规则
这个规则始终是启用的,不能配置。 请采用以下方法之一以避免使用此规则:
- 创建一个自定义规则配置文件,只包含你想要的规则,或者排除你不想要的规则。
- 在代码中添加相应的规则抑制属性,以抑制特定代码块的规则。 更多信息请参见使用 PSScriptAnalyzer 中的“抑制规则”部分。