为什么 运行 在管理员模式下自行编写、未经测试的代码不是一个好主意?

Why is running self-written, untested code in Administrator mode a bad idea?

我最近向 SO 发布了一个关于用 C++ 写入文件的问题。在其中一条评论中,我提到我 运行 处于管理员模式。后来的评论说:

Running self-written, untested software in admin mode is a bad idea. Don't ever do that.

这让我想知道,这是为什么?后果是什么?我遇到过无法加载项目的情况——除非在管理员模式下。这适用于不属于您的机器(例如工作机器),还是每次都适用于所有机器?

拥有 必须有意识地启用的单独管理员模式的想法是让软件 运行 拥有完成工作所需的最少权限。因此,故障或恶意软件(希望)无法损坏/危及您的系统。

现在。

未经测试的软件可能包含错误。

不,推迟。

未经测试的软件包含错误。

这可能会导致文件被覆盖、设置被更改等等。

丢失文件是一回事"test.txt"。有错误的正则表达式会抹掉一半的注册表,或者系统库中的错误文件路径(或你 90% 完成的硕士论文......)被覆盖是另一回事。

运行 您的软件 - 任何 软件,实际上 - 具有可能的最小权限集仍然可以完成其工作。

向 vs 项目添加 post 构建操作非常容易,它将安装 运行 一些危险程序,例如木马。只需从源代码管理下载解决方案并使用管理员权限构建它,您就可以打开通往所有威胁的大门。