【问题标题】:nodejs safest path and file handling [closed]nodejs最安全的路径和文件处理[关闭]
【发布时间】:2016-11-25 19:54:48
【问题描述】:

当涉及来自客户端的文件访问时,需要采取哪些安全措施。

例如,他们可以使用../ 来访问根目录,而我们涉及path 相关功能。

编写路径相关代码最安全的方法是什么?

【问题讨论】:

  • 清理文件名模块:npmjs.com/package/sanitize-filename
  • 谢谢@jfriend00,目录遍历呢
  • 该清理模块可防止所有目录遍历。如果您想允许某些目录遍历,则必须在您的问题中准确指定允许的内容。您现在的问题对于您想要允许什么以及您想要阻止什么并不是很具体,所以不可能有准确的答案,因为这个问题是模糊的和不具体的(因此也许你为什么会得到一些反对意见)。您可以修复问题以包含您真正想要完成的任务的迷你规范。

标签: javascript node.js path


【解决方案1】:

1) 首先检查 Poison Null 字节

if (filename.indexOf('\0') !== -1) {
  return respond('That was evil.');
}

2) 白名单

if (!/^[a-z0-9]+$/.test(filename)) {
  return respond('illegal character');
}

3) 防止目录遍历

var rootDirectory = '/var/www/';

var path = require('path');
var filename = path.join(rootDirectory, userSuppliedFilename);
if (filename.indexOf(rootDirectory) !== 0) {
  return respond('trying to sneak out of the web root?');
}

Reference:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-26
    • 1970-01-01
    • 1970-01-01
    • 2017-07-02
    • 1970-01-01
    • 1970-01-01
    • 2020-11-03
    • 2019-10-31
    相关资源
    最近更新 更多