禁止直接访问文件并在没有执行权限的情况下通过readfile()服务

时间:2019-04-10 19:05:46

标签: php .htaccess file-permissions readfile

我正在一个项目上,用户可以在其中将文件上传到我的服务器。我想将文件存储在没有执行权限的文件夹中,并且我想强制用户通过php文件访问文件。我正在共享主机上。

如果我从根文件夹(即“ /home/user/Website.com/Files/MyFile.ext”)调用文件,则该文件将需要执行权限,因为它在readfile()发送给用户之前执行。如果我从“ https://Website.com/MyFile.ext”调用它,则不需要执行权限,但是该资源要么被我的.htaccess文件阻止,要么由用户通过url看到。

我当前的解决方案是将文件夹权限设置为601,并将我在'https://Website.com/Files'中的.htaccess设置为

Order Deny, Allow
Deny from all
Allow from xxx.ServerIpAddress

和我的php文件

readfile('https://Website.com/Files/MyFile.ext');
exit();

这可以实现预期的行为,如果我在自己的服务器上,我认为这已经足够了,但是由于我是在共享主机上,所以我怀疑共享我IP地址的人可以访问我的文件,因此我正在寻找另一种方法。

0 个答案:

没有答案