nodejs最安全的路径和文件处理

时间:2016-07-22 03:06:48

标签: javascript node.js path

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

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

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

1 个答案:

答案 0 :(得分:0)

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