PHP性能检查用户权限并从其他服务器获取文件
Posted
技术标签:
【中文标题】PHP性能检查用户权限并从其他服务器获取文件【英文标题】:Php performance to check user right and get file from other servers 【发布时间】:2019-06-11 06:57:40 【问题描述】:我有一个项目,我目前正在使用谷歌存储来存储照片。 您可以通过 php 访问一张照片(因为它需要 google 身份验证),但这张照片在一次操作中被调用了十次(图库加载)
数据库 « 结构 »
摄影师可以有多个客户,客户可以有多个画廊和画廊有照片
照片已发送到«download.php»以从谷歌云存储中检索它并返回包含图像数据的响应image/jpeg
目前您可以发送类似 « download.php?key=hekavg71948hdk_img7291.jpg» 的内容,并且 download.php 将从谷歌云返回文件,如果没有与该名称对应的文件,则返回 404(无需进入数据库查询为此)因此任何未登录的人都可以通过此 php 访问照片(仅限照片)
我想添加一个用户检查来验证摄影师/客户是否是所请求文件的所有者将是一个好主意(例如检查文件是否来自来自当前用户的客户的画廊)或者传输文件会花费太多时间?因为从谷歌检索它有点长(比如 600 毫秒/图像,网络良好),并且使用同一服务器上的服务器和数据库进行类似查询需要 12 毫秒
你怎么看? 或者至少检查用户是否登录而不检查其所有者是否 提前致谢
【问题讨论】:
“用户检查”是什么意思?为什么这与性能相关? 通过用户检查,我的意思是目前任何人都可以访问任何人的文件,如果他们发送正确的随机 60char 作为获取参数,因此用户检查是为了验证用户是否是所请求文件的所有者,我要求因为“大量”文件请求由于云传输而有点慢,所以如果我可以添加用户签入数据库,那么在用户取消请求时会更慢 请将所有进一步的解释添加到问题本身,而不是评论部分。是的,如果检查权限的时间比下载文件的时间长,那不是一个好主意。但是,如果您无论如何都必须检查权限,我认为没有理由跳过此操作 @NicoHaase 添加了! 【参考方案1】:我想添加另一个解决方案,OAuth 2.0 身份验证来验证工具和应用程序(授予它们权限)以代表您访问 Google Cloud Storage API,访问权限受 OAuth 范围 devstorage.read_only、devstorage.read_write 和devstorage.full_control。
https://cloud.google.com/storage/docs/access-control/lists https://developer.okta.com/blog/2018/07/09/five-minute-php-app-auth
【讨论】:
用户的身份验证已经完成,并且仅在我的服务器上有效。该项目不是谷歌存储客户端。我只是将它用作我需要大量磁盘空间才能工作的项目的存储服务器以上是关于PHP性能检查用户权限并从其他服务器获取文件的主要内容,如果未能解决你的问题,请参考以下文章