前端怎样实现下载文件,而不暴露文件路径(不被抓包工具抓到)或者即使被抓到再次通过路径直接访问也拿不到文件
前端怎样实现下载文件,而不暴露文件路径(不被抓包工具抓到)或者即使被抓到再次通过路径直接访问也拿不到文件
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
前端怎样实现下载文件,而不暴露文件路径(不被抓包工具抓到)或者即使被抓到再次通过路径直接访问也拿不到文件
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(9)
题主采纳的答案是用PHP完成传输,这么做小文件还行,大文件,那就坑爹了。
PHP本职工作不是干文件传输,不建议这样搞。
正确的做法,以 Nginx + PHP 为例应该是:
1、指定一个加密链接规则,如
/download/xiaoming.zip?time=1520907835&sign=md5(download=xiaoming.zip&time=1520907835&key=私有密钥)
2、PHP 完成用户鉴权,并按加密链接规则返回加密链接
3、Nginx 负责处理下载目录的请求
不可能。
.
使用一次性的下载链接,抓包工具抓到到也没用。
1.用action 向流里写字节流
3.收到key 后验key 给文件
每次下载请求前先获取一个后台随机生成的一次性加密值,下载请求带上加密值,验证成功才能下载
给图片配上路由信息。
java后端使用
OutputStream os = response.getOutputStream();
下载 是后端返回文件数据的操作 所以判别是否返回数据的工作应在后台完成
原则上后台不会信任前端传来的任何标志信息 都要进行校验 所以你前端只管提供链接就可以 链接打开后 是否返回数据由后端来决定
后来通过的是使用后台验证的方法,前端在网站上点击的时候向后台传递用户的id,后台设置对应id的一个token值,并将文件下载到服务器,然后前端再访问此php,后台根据是否有token值决定向前台是否传输文件,传输过后则删除此token,下次再直接访问此php则因为无token而不提供传输文件