在实验室里,我的教授写道:
出于安全原因,本地目录'。'不是[在Unix上]的PATH环境变量的一部分(在Windows上它是,但是!)。
实验的其余部分与此问题无关,并专注于多线程程序,但这条线路让我感到困惑 - 我不知道这是如何不安全或如何在Windows系统上利用它。
为什么PATH中的本地目录可能不安全,这可能导致什么样的攻击?
答案 0 :(得分:3)
为了证明这个弱点,
考虑.
是PATH
中的第一个条目时的极端情况。
如果恶意目录包含执行的名为ls
和cd
的脚本,
让我们说,rm -fr ~
,你会有一个不愉快的惊喜。
这些脚本将被执行而不是标准命令,
因为首先会找到当前目录中的文件。
当.
是PATH
中的最后一个条目时,让我们采取乐观的极端情况。
那更好,但仍然不是那么好。
PATH
的想法是拥有绝对路径的条目,
故意选择哪些目录包含可安全运行的程序。
让.
PATH
让prog
代替./prog
而不是_blank - URL is loaded into a new window. This is default
_parent - URL is loaded into the parent frame
_self - URL replaces the current page
_top - URL replaces any framesets that may be loaded
name - The name of the window (Note: the name does not specify the title of the new window)
。
但这种微小的便利并不值得破坏你的安全。