有人可以告诉我这些安装 Chocolatey 的 PowerShell 脚本是否安全吗?
Can someone please tell me whether these PowerShell scripts to install Chocolatey is safe?
我需要安装 Chocolatey,一个 Windows 包管理器。在他们的网站上,我找到了这个必须执行才能安装的 powershell 脚本。但是,我不明白这个脚本。
我需要知道的是这个脚本是否安全。
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
让我怀疑的说法是Set-ExecutionPolicy Bypass -Scope Process -Force;
和[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072;
。
要执行的远程powershell脚本是this.
如果有人能告诉我这些脚本是否安全,那就太好了...
让我们逐行看看发生了什么。
Set-ExecutionPolicy Bypass -Scope Process -Force;
默认情况下 Powershell 没有 运行 脚本文件。这是为了防止意外执行脚本,是一种安全措施。由于范围是进程,它只影响当前会话,而不是系统范围的更改。有关详细信息,请参阅 Set-ExecutionPolicy。
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072;
这里所做的是对 TLS 设置的更改。 -bor 3072
表示标志的组合,记录为 SecurityProtocolType 枚举
并且特定标志启用 TLS 1.2 支持。
iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
最后一个先用WebClient
下载一个Powershell脚本文件,iex
执行
代码合理吗?好吧,关于启用 TLS 1.2 的部分是,因为旧版本的 TLS 已被弃用,旧的 Powershell 默认为那些。现代网络服务器不允许此类连接,因此如果不更改 TLS 版本,下载尝试就会失败。执行策略设置也是如此,如果您要运行一个脚本,则需要更宽松的执行策略。
至于install.ps1
,谁能说说?如果您信任发布者,这是您的决定。
我需要安装 Chocolatey,一个 Windows 包管理器。在他们的网站上,我找到了这个必须执行才能安装的 powershell 脚本。但是,我不明白这个脚本。
我需要知道的是这个脚本是否安全。
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
让我怀疑的说法是Set-ExecutionPolicy Bypass -Scope Process -Force;
和[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072;
。
要执行的远程powershell脚本是this.
如果有人能告诉我这些脚本是否安全,那就太好了...
让我们逐行看看发生了什么。
Set-ExecutionPolicy Bypass -Scope Process -Force;
默认情况下 Powershell 没有 运行 脚本文件。这是为了防止意外执行脚本,是一种安全措施。由于范围是进程,它只影响当前会话,而不是系统范围的更改。有关详细信息,请参阅 Set-ExecutionPolicy。
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072;
这里所做的是对 TLS 设置的更改。 -bor 3072
表示标志的组合,记录为 SecurityProtocolType 枚举
并且特定标志启用 TLS 1.2 支持。
iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
最后一个先用WebClient
下载一个Powershell脚本文件,iex
执行
代码合理吗?好吧,关于启用 TLS 1.2 的部分是,因为旧版本的 TLS 已被弃用,旧的 Powershell 默认为那些。现代网络服务器不允许此类连接,因此如果不更改 TLS 版本,下载尝试就会失败。执行策略设置也是如此,如果您要运行一个脚本,则需要更宽松的执行策略。
至于install.ps1
,谁能说说?如果您信任发布者,这是您的决定。