在NuGet包install/init期间运行的Powershell脚本有哪些安全限制?

Dan*_*eny 6 powershell nuget

从NuGet安装软件包时,它可以运行一些Powershell脚本进行设置(例如导出要在Package Manager控制台中使用的命令).

我正在尝试(并且失败)找到这些脚本能够/不能做什么的细节.具体来说 - 我们应该担心这些恶意代码吗?他们可以读取文件系统,发送Web请求等吗?

Kil*_*man 3

当 NuGet 设置 PowerShell 主机时,它会检查当前的 ExecutionPolicy 是什么。如果它不是 Unrestricted、RemoteSigned 或 Bypass,则会强制当前进程 (devenv.exe) 的 ExcecutionPolicy 为 RemoteSigned。

PowerShell 不会看到从 Internet 下载的嵌入脚本 init.ps1、install.ps1 等,因此无法阻止恶意脚本在您的计算机上执行您的帐户有权执行的任何操作。

此时,所有 NuGet 包创建者几乎都处于“荣誉”系统上。我相信Ruby Gems也有类似的情况。

NuGet 确实能够使用私有包源,因此如果安全性至关重要,我建议您下载并审查所有包,并且只允许安装来自这些受信任源的包。