编辑全局PATH环境变量是否安全?


9

我最近才发现,除非输入完整路径或将其放置在正确的目录中,否则我将无法运行mysql,除非将路径添加到PATH环境变量中。

我设法做到了,现在我可以在启动命令行时运行mysql。我很懒,不想只为了从cmd运行mysql而输入整个路径。另外,我不知道还有其他方法可以做到。我在一个论坛上随机遇到该解决方案。

我现在唯一想知道的是,对于我的所有程序,这样做是否可以/安全?

虽然不切实际,但这只是一种预防措施。

我注意到在一些在线教程中,有些人的用户变量具有PATH变量,而我却没有。我只在系统变量部分找到了PATH环境变量。那是一件坏事?

我的PC上唯一的帐户是管理员帐户。至少,这是我使用的唯一帐户。

我可以对此进行一些澄清/输入吗?

Answers:


9

向添加目录通常没有任何危险PATH。它只会以两种方式引起您的问题:

  1. 使用命令提示符时,您可能会意外运行您不想要的程序。再说一次,如果您知道放入的程序,那么PATH不会发生恶意。
  2. 程序可能会在其中找到通常不加载的DLL。该DLL搜索顺序指定如果请求的DLL不能在正常位置被发现,它最终将在寻找PATH的地方。例如,如果某个程序有选择地尝试通过按名称加载DLL来加载模块,并且在失败时不予理会,则控制PATH文件夹的人可能会导致该程序加载一个任意DLL,如果以前没有找到其名称的话。在搜索中。顺便说一句,那个可能的安全问题就是为什么尝试加载可能存在或可能不存在的DLL是一个坏主意的原因。编写良好的程序不会出现此问题。

您也可以想象最大PATH长度是可变长度,但这并不是真正的安全性问题。

关于找不到用户PATH变量:如果您创建该变量的每个用户版本,则有效的PATH是将系统自动与每个用户合并。


1
谢谢。您几乎涵盖了我需要保证的所有内容。非常感谢。在收到大量反馈之前,我通常不喜欢授予接受的答案,但是您的回复涵盖了所有内容以及更多内容。另外,我真诚地怀疑其他任何人都不会回答我的问题。
ThatRandomGuy
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.