我目前正在开发Vue JS + Vuetify + Axios + Laravel架构,正在制作仪表板。目前,我正在用户配置文件上工作,他们可以在其中上传头像的图片,还可以通过其他上传器上传其营业执照。 用户需要稍后能够修改更新这些文档。 良好且适当的安全性很好地实现此要求的最佳策略是什么? 使用随机+用户名重命名文件后,将文件存储在Laravel的专用区域还是公共区域? 将文件直接存储为mysql中的blob并检索? 仅在将文件存储在Laravel树下的公共/私有文件夹中时,才将文件的路径存储在mysql中? 为了进行身份验证,我计划使用jwt和websanova。
答案 0 :(得分:1)
化身的存储位置取决于它的显示位置。只会显示给该用户吗?其他登录用户?未经身份验证的用户?
关于用户的营业执照,我会将其存储在不可公开访问的文件夹中,然后通过API端点进行访问。这样,您就可以通过Laravel控制器实施必要的安全规则。
通常来说,我会避免将文件存储在DB中。您正在膨胀数据库的大小,这会影响other things之间的备份/还原。如果需要扩展应用程序,将文件存储在文件系统上还可以使其在某些时候更容易移至云存储(例如Amazon S3)。