Php 如何对文件(图像、视频、zip)进行密码保护,使其不受公众访问,并且只允许成员访问?

Php 如何对文件(图像、视频、zip)进行密码保护,使其不受公众访问,并且只允许成员访问?,php,security,apache,Php,Security,Apache,这是一个常见的问题,解决了很多次,但由于某种原因,我找不到正确的信息 一些限制和要求: 灯堆技术 细粒度控制哪些文件可访问 没有htpasswd文件的基本身份验证,我想提供一个自定义登录前端 应该能够安全地保护和服务大的视频文件 所有这些站点如何在不使用基本身份验证的情况下保护其文件不被公开 谢谢 类似的问题:您通常会将媒体文件的任何请求重定向到PHP脚本。PHP脚本执行登录身份验证,成功后,从受保护的位置加载请求的媒体文件,并将其传递到浏览器,例如使用fpassthru()或fread()

这是一个常见的问题,解决了很多次,但由于某种原因,我找不到正确的信息

一些限制和要求:

  • 灯堆技术
  • 细粒度控制哪些文件可访问
  • 没有htpasswd文件的基本身份验证,我想提供一个自定义登录前端
  • 应该能够安全地保护和服务大的视频文件
所有这些站点如何在不使用基本身份验证的情况下保护其文件不被公开

谢谢


类似的问题:

您通常会将媒体文件的任何请求重定向到PHP脚本。PHP脚本执行登录身份验证,成功后,从受保护的位置加载请求的媒体文件,并将其传递到浏览器,例如使用
fpassthru()
fread()

您可以使用一组
mod_rewrite
指令设置一个非常优雅的解决方案,例如重写

www.example.com/media/music.mp3
对内

www.example.com/media/index.php?file=music.mp3

这种方法并不便宜,因为每次下载都必须启动PHP解释器,并传递文件的每个字节。为了讨论可能的替代方案,几个月前我问了一个问题:

就是这样做的。注意:受保护的位置是apache(或所选Web服务器)文档根目录之外的文件夹,因此不可公开访问。您只能使用下载脚本访问文件(顺便说一句,您必须确保下载脚本检查其输入,以防止恶意用户下载其他文件,如脚本源).好吧,这确实是我考虑过的方法,但我也担心性能,尤其是在(流媒体?)视频方面,我甚至不确定这是否可能。。。需要做很多测试。。。谢谢你,伙计!;-)我看你的问题和我的很相似,没有偶然发现。问题已更新。如果您对以性能为导向的方式感兴趣,请查看代理Web服务器,例如nginx,它旨在消除连接费用,尤其是它的X_ACCEL_重定向功能