【问题标题】:Resolve filesystem paths (possibly with symlinks) with Node.js使用 Node.js 解析文件系统路径(可能带有符号链接)
【发布时间】:2014-12-09 22:18:20
【问题描述】:

我需要一种方法来验证文件是否在特定路径下。如果路径是/var/www,文件是/var/www/something/something-else/file,我需要返回true。如果文件是/var/www/../../etc/passwd,我需要返回false

在 PHP 领域,我通常使用一个名为 realpath() 的函数:

realpath() 扩展所有符号链接并解析输入路径中对“/./”、“/../”和额外“/”字符的引用,并返回规范化的绝对​​路径名。

我在所需路径和完整文件路径上运行realpath(),然后确定所需路径是否是完全解析文件路径结果的子字符串。如果是,我返回true

Node.js 是否有实现相同目标的功能? path.resolve() 让我半途而废,但不处理文件系统中实际存在的任何符号链接。 fs.readlink() 完全没有任何文档,并且可能不会直接应用,因为我不会总是有符号链接。

我必须遍历路径的每个部分,边走边解析符号链接,还是有更规范的方法?

【问题讨论】:

    标签: node.js


    【解决方案1】:

    Node 也有 fs.realpath(),所以它的工作方式应该与 PHP 相同。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-12
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 2016-09-23
    • 2012-10-28
    • 1970-01-01
    相关资源
    最近更新 更多