例如用户通过拍摄身份证照片进行认证,怎么保存和让用户及审核人员读取而不被其他人查看。 这里想到的方式有 6 种 1.直接将文件放到可通过 URL 访问的服务器,但是图片文件名是通过一定规则加密例如 md5+sha1 加大穷举难度。 如: https://a.com/images/iw2992hhfwh2i252i9yt29yhwiyr82hhgiwwjh2kt22jhth28323h4.png 简单好操作使用也方便,但问题就是存在规则泄漏后被人遍历的可能。
2.通过生成带签名的 URL,有过期时间,好像阿里云 OSS 有这功能,没用过,用过的还请介绍一下详细情况。
3.先将图片保存到指定的内网服务器,每次在使用图片时进行权限验证,验证通过后获取图片到验证服务器并返回给前端,这种方式更安全,每个用户只能看到自己的隐私图片,但是中间多了传输的过程,速度就慢下来了,对验证服务器流量也有一定要求,可以加上缓存等等,还是存在较多工作量。
4.同样采用自建图片服务器,在此服务器上搭建权限管理系统,对授权通过的请求返回图片,工作量最大的。
5.直接将图片保存在 ECS 服务器上,负载均衡的服务器见相互同步图片。
6.直接将图片保存到数据库,这种方式基本就没考虑了,因为图片量会比较大。
目前处于时间和成本的考虑用的是方案 1,不知道是否还有其他简单方便一点的方案能够做到安全且开发简单。
1
mengda1andhalf 2019-04-24 14:59:15 +08:00
我记得 ali oss 能生成一次性的 token,用于上传图片。估计下载也行
|