当客户端涉及文件访问时需要采取哪些安全措施。
例如,当我们涉及../
相关功能时,他们可以使用path
来访问根目录。
编写与路径相关的代码最安全的方法是什么?
答案 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?');
}