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性能检查用户权限并从其他服务器获取文件的主要内容,如果未能解决你的问题,请参考以下文章

什么是正常的chmod?

检查其他用户是不是对 linux 上的文件具有读/写权限

如何从主页中删除 index.php 并从其他 php 文件中删除 .php 扩展名

php异步执行其他程序

PHP - 检查 CSV 文件是不是被锁定以供其他用户修改

Magnolia CMS - 检查其他用户的权限