例如用户通过拍摄身份证照片进行认证,怎么保存和让用户及审核人员读取而不被其他人查看。 这里想到的方式有 6 种 1.直接将文件放到可通过 URL 访问的服务器,但是图片文件名是通过一定规则加密例如 md5+sha1 加大穷举难度。 如: https://a.com/images/iw2992hhfwh2i252i9yt29yhwiyr82hhgiwwjh2kt22jhth28323h4.png 简单好操作使用也方便,但问题就是存在规则泄漏后被人遍历的可能。
2.通过生成带签名的 URL,有过期时间,好像阿里云 OSS 有这功能,没用过,用过的还请介绍一下详细情况。
3.先将图片保存到指定的内网服务器,每次在使用图片时进行权限验证,验证通过后获取图片到验证服务器并返回给前端,这种方式更安全,每个用户只能看到自己的隐私图片,但是中间多了传输的过程,速度就慢下来了,对验证服务器流量也有一定要求,可以加上缓存等等,还是存在较多工作量。
4.同样采用自建图片服务器,在此服务器上搭建权限管理系统,对授权通过的请求返回图片,工作量最大的。
5.直接将图片保存在 ECS 服务器上,负载均衡的服务器见相互同步图片。
6.直接将图片保存到数据库,这种方式基本就没考虑了,因为图片量会比较大。
目前处于时间和成本的考虑用的是方案 1,不知道是否还有其他简单方便一点的方案能够做到安全且开发简单。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.