码迷,mamicode.com
首页 > Web开发 > 详细

前端-接入层上传问题

时间:2020-01-31 22:29:02      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:浏览器   解析   写入   后缀名   前端   php   读取   文件头   ===   

接入层上传

上传问题

  • 上传文件
  • 再次访问上传的文件
  • 上传的文件被当成程序解析

上传问题防御

  • 限制上传后缀
let ext = path.extname(file.name);
if (ext === ".js") {
  throw new Error("不要上传坏文件");
}

但是可以通过改后缀名的方式,达到攻击的目的

  • 文件类型检查
if (file.type != "image/png") {
  throw new Error("只允许PNG");
}

类型是从浏览器读取的,可以不经过浏览器上传文件,依然不安全

  • 文件内容检查
var fileBuffer = fs.readerFileSync(file.path);
fileBuffer[0] == 0x5b;

但是可以通过在文件头部写入对应的内容

GIF89a
<?php

所以还是不安全

  • 程序输出
    • 比较保险,但是对性能可能会有很大的影响
  • 权限控制-可写可执行互斥
    • 这还少一个原则,是安全的一个最低保障

前端-接入层上传问题

标签:浏览器   解析   写入   后缀名   前端   php   读取   文件头   ===   

原文地址:https://www.cnblogs.com/ygjzs/p/12246827.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!