您的位置:首页 > Web前端

【前端安全】接入层上传问题

2019-04-10 17:34 513 查看

接入层上传问题

上传来自用户,会马上被用户访问

如果文件被当做文件解析,可能会造成问题。

如果是可以被执行的文件,可能会直接执行一些非法的操作。

上传问题:

  1. 上传文件
  2. 再次访问上传的文件
  3. 上传的文件被当成程序解析
const bodyParser = require('koa-body');
app.use(bodyParser({
multipart: true
}))

防御:

  1. 限制上传后缀
if(data.files) {
let file = data.files.img;
let ext = path.extname(file.name);
if(ext === 'js') {
throw new Error('别传js');
}
let filename = Date.now() + ext;
fs.readnameSync(file.path, './static/upload' + filename);

data.fields.content += '<img src="/uploadFile/" + filename/>'

data = data.fields;

}
  1. 文件类型检查
if(file.type != 'images/png') {
throw new Error('只允许png')
}
  1. 文件内容检查

每一种文件前面的几个buffer的内容都是固定的

var fileBuffer = fs.readFileSync(file.path);
fileBuffer[0] == 0x5b;
  1. 程序输出
  2. 权限控制-可写可执行互斥
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: