Javascript 如何针对根目录检查恶意路径?

Javascript 如何针对根目录检查恶意路径?,javascript,node.js,security,Javascript,Node.js,Security,我想连接两条路径: var path = require('path'); path.join(root, requestPath); 如何防止像../../../../../../etc/passwd这样的路径?最佳做法是什么 var isMalicious = function(path, root) { /* HOW TO */ }; 跟秋葵说的差不多。下面是一个代码示例: var path = require('path'); var root = '/var/www/app/';

我想连接两条路径:

var path = require('path');
path.join(root, requestPath);
如何防止像../../../../../../etc/passwd这样的路径?最佳做法是什么

var isMalicious = function(path, root) { /* HOW TO */ };

跟秋葵说的差不多。下面是一个代码示例:

var path = require('path');
var root = '/var/www/app/';

var path = require('path');
var filename = path.join(root, requestPath);

if (filename.indexOf(root) !== 0) {
  //  someone is trying to break out of root!
}

这是值得一读的更多安全问题

更改../etc/passwd的权限以使其不可访问?使用一些路径实用程序来解析给定的路径,将root作为其绝对表示形式的前缀。我想这就是path.join已经做的。然后检查它是否仍在根目录中。确保根目录以/结尾。