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已经做的。然后检查它是否仍在根目录中。确保根目录以/结尾。