文件类型处理器中的程序路径必须是全路径 您所在的位置:网站首页 文件的路径名是什么 文件类型处理器中的程序路径必须是全路径

文件类型处理器中的程序路径必须是全路径

2023-03-20 14:48| 来源: 网络整理| 查看: 265

0 分享至

用微信扫码二维码

分享至好友和朋友圈

很多人可能还没有意识到这一点,但是在 Windows XP SP2 中,我们对文件类型处理器添加了这样一条要求:即如果文件处理器程序不在 Windows 目录或者不在 System 目录中的时候,注册该处理器程序的路径必须全路径,而不是相对路径。

为什么会有这个要求?

原因是出于对安全性的考虑,并和”可预测性”有一丝关系。

我们先说安全性,SearchPath 这个 API 会在当前目录下查找文件,并且它会在查找系统目录或 PATH 环境变量目录之前查找当前目录。这意味着,如果攻击者创建一个富有诱惑性的文件名,如”机密文件.txt”,并在当前目录下创建一个隐藏的 Notepad.exe 执行文件,会出现安全问题。

用户看到这个 “机密文件.txt”,会忍不住好奇着打开它,当他双击打开这个文件时,隐藏在当前目录下的 Notepad.exe 会首先被执行,而不是系统目录下正牌程序。

所以,基于以上的原因,我们添加了对文件全路径的要求,这样就有效的规避了上述安全问题。

下面我们说说可预测性,因为 PATH 环境变量可能随着进程的不同而各不相同。因此,相对路径可以解析为不同的程序,具体取决于谁在询问。

这反过来又导致必须解决诸如“当我从资源管理器双击它时它有效,但如果从批处理文件运行它则不起作用”等问题。

总结

从我的经验来说,相对路径在跨环境文件定位时还是十分有用的。如果你希望得到某种确定性,则使用全路径会比较合适。

最后

Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。本文来自:《Program names in file type handlers need to be fully-qualified》

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

/阅读下一篇/ 返回网易首页 下载网易新闻客户端


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有