Skip to content

Standardize on PSCredential parameters for secrets #5

Description

Context

index.md idioms say "keep secrets out of source; take secrets as [securestring] or through Get-Credential." The baseline Security standard covers least privilege and secret hygiene.

Gap

The community guidance is more precise, and our current wording ("take secrets … through Get-Credential") is slightly off for reusable functions:

  • Take a [PSCredential] parameter with the [System.Management.Automation.Credential()] attribute — do not call Get-Credential inside a reusable function, so callers can reuse a credential they already hold (and are still prompted securely if they pass only a username).
  • Use SecureString for other sensitive values (Read-Host -AsSecureString), and when you must decrypt one, free the BSTR (ZeroFreeBSTR) to avoid leaving the plaintext in memory.
  • For credentials that must persist to disk, Export-CliXml / Import-CliXml (DPAPI-protected) rather than plaintext.

Proposed change

Update the index.md security idiom (and/or the Security baseline) to prefer a [PSCredential] + [Credential()] parameter over calling Get-Credential inside a function, and add the SecureString and at-rest notes.

Source

PoshCode — Best Practices "Security".

Acceptance

The standard tells authors to accept credentials as a [PSCredential] parameter (rather than call Get-Credential internally) and covers SecureString handling.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions