2种安全下载的方案
来源:互联网 发布:手机阿里和淘宝的区别 编辑:程序博客网 时间:2024/05/19 03:22
系统后台提供恢复文件的下载,原本是放在一个开放目录中,客户端可以直接下载
app.use('/svc/public', express.static(__dirname + '/../public'));
但是这样没有鉴权,不安全,用户A只要知道另一个用户的企业ID,就可以下载到他的恢复文件。另外整个下载过程没有经过程序的干预,也不利于后续做一些统计方面的工作
改造为下载需要先经过后台的服务,具体有2种做法:
node读取文件,将流写到response中
用express很容易实现:
function doDownload(req, res, next) { var enterpriseId = req.params["enterpriseId"]; var absolutePath = resolvePath(enterpriseId); res.download(absolutePath, "resume.zip", function(err){ if(err){ logger.error("download fail: " + err); } });}function resolvePath(enterpriseId) { var filePath = FRAMEWORKPATH + "/../public/mobile/backup/" + enterpriseId + ".zip"; return path.resolve(filePath);}
上面的public目录已经不再向外部开放,只能由node读取文件的内容,通过响应写给客户端
拷贝临时文件,下载完成后即删除
服务端收到下载的请求后,先生成一个随机的文件名,并将目标文件拷贝到一个开放的目录中,然后将临时文件的URL作为响应给到客户端
客户端到这个开放目录下载,下载完成之后,服务端就把临时文件删除
从性能角度来说,或许第二种方式是更好的,node的负担比较轻,只需要返回临时文件的路径。下载通过nginx就可以完成了
0 0
- 2种安全下载的方案
- 网站安全认证系统的设计变迁-5中网占安全认证方案的chm下载
- 数据安全的保密方案
- 革命性的数据安全方案
- 关于Map线程安全的几种实现方案
- 解决打开网页提示"文件下载-安全警告"方案
- 安全方案
- Cisco路由器的安全配置简易方案
- ASP.NET应用程序的安全方案
- Cisco路由器的安全配置方案
- ASP.NET应用程序的安全方案--Forms
- ASP.NET应用程序的安全方案--身份验证
- ASP.NET应用程序的安全方案--授权
- 关于.NET网站安全的方案
- 简单的FTP文件安全识别方案
- 服务器安全维护的七大方案
- VSS+SOS 安全的远程配置管理方案
- 安全可靠的汽车电子电路保护方案
- Gabor特征提取
- OJ_1061
- 未来大数据的处理和发展的五个趋势
- linux中断(与异常)处理过程
- Java集合类小结
- 2种安全下载的方案
- 遍历json获得数据的几种方法
- Repeater中的LinkButton添加OnClick事件
- OJ_1062
- android中版本webView中js不执行问题
- 《学习OpenCV》codebook法+连通域法(page319)
- WPF-Grid学习
- Java Thread 多线程同步、锁、通信
- 排序算法