我必须创建一个简单的系统来保护PHP文件的MP3文件。我将有一个index.php
页面,只有一个密码输入。表单将定位download.php
。此文件将检查密码/密钥是否匹配并下载只能下载一次的MP3文件。 (我在数据库中有多个密码,在下载后将被删除)。
我想知道如何保护此文件或仅在打开download.php
时生成该文件。
答案 0 :(得分:2)
将文件存储在服务器上的任何位置,而不是public_html
或其中的任何文件夹(或任何文档根目录)。这样,任何人都无法通过查找其URL来访问该文件。但是,服务器上的PHP可以轻松访问该文件。
答案 1 :(得分:0)
您可以将文件存储在文档根目录之外,然后以编程方式从doc根目录创建符号链接。这样做的好处是,您可以让Apache提供文件,而不是要求PHP执行此操作 - 这样可以降低内存需求。
例如,假设你的项目在这里:
/var/www/music-app
你的docroot在这里:
/var/www/music-app/www
将音乐文件存储在此处:
/var/www/music-app/files/myfile.mp3
然后创建您提供给经过身份验证的用户的符号链接,该符号链接指向MP3文件:
/var/www/music-app/www/links/hf6g298g2gng2kg2ug29g2j2gmg.mp3
然后,您可以使用cron作业来整理比一周更早的死链接。