Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript nodejs最安全的路径和文件处理_Javascript_Node.js_Path - Fatal编程技术网

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

Javascript nodejs最安全的路径和文件处理,javascript,node.js,path,Javascript,Node.js,Path,当涉及来自客户端的文件访问时,需要采取哪些安全措施 例如,他们可以使用。/访问根目录,而我们有路径相关函数 写路径相关代码最安全的方法是什么?1)首先检查空字节 if (filename.indexOf('\0') !== -1) { return respond('That was evil.'); } 2) 白名单 if (!/^[a-z0-9]+$/.test(filename)) { return respond('illegal character'); } 3) 防止目录

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

例如,他们可以使用
。/
访问根目录,而我们有
路径
相关函数

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

1)首先检查空字节

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?');
}

清理文件名模块:谢谢@jfriend00,那么目录遍历呢?清理模块阻止所有目录遍历。如果您想允许某些目录遍历,那么必须在问题中明确指定允许的内容。你现在的问题不是很明确,你到底想允许什么,你想阻止什么,因此不可能有准确的答案,因为这个问题是模糊和不具体的(因此,也许你会得到一些反对票)。您可以修复这个问题,为您真正想要完成的任务包含一个迷你规范。