AvoidUsingPlainTextForPassword

默认状态:始终启用

严重性级别:警告

Description

该规则检测与密码相关名称的函数或脚本参数,这些参数声明时使用 string 类型而非类型 SecureString 。 接受明文的密码参数会暴露密码,可能危及系统安全。 你不应该接受密码作为纯文本。 相反,使用 SecureString 类型来安全存储密码。

以下参数被视为密码参数,不区分大小写:

  • 密码
  • 通过
  • Passwords
  • 通行短语
  • 口令
  • PasswordParam

如果你定义了一个参数,名字来自提供的列表,请用 SecureString 类型声明它。

Example

非符合性

function Test-Script
{
    [CmdletBinding()]
    Param
    (
        [string]
        $Password
    )
    ...
}

合规的

function Test-Script
{
    [CmdletBinding()]
    Param
    (
        [SecureString]
        $Password
    )
    ...
}

配置规则

这个规则始终是启用的,不能配置。 请采用以下方法之一以避免使用此规则:

  • 创建一个自定义规则配置文件,只包含你想要的规则,或者排除你不想要的规则。
  • 在代码中添加相应的规则抑制属性,以抑制特定代码块的规则。 更多信息请参见使用 PSScriptAnalyzer 中的“抑制规则”部分。