如何保护文件免于直接下载



我想保护一些文件在我的服务器从下载,但我的网站需要在他们的访问。我想保护一些字幕文件,这些文件需要网站访问,但我不希望任何人下载它们。网站被托管。

例如,一些网站使用一些奇怪的字符串与用户,视频和IP连接。可以像这样用在我的情况下

http://www11.some-site.com:182/d/qygiatnqvsulzrqmk7n6nbhddbcscvyguy4auc3fn4nvf23jp64tjcpa/File-needed.mp4?start=0

如果您正在使用Apache,您必须使用重写您的.htaccess文件中的规则。如果你正在使用其他品牌的HTTP服务器,你应该使用几乎相同的逻辑,我将在这里展示,所以在这种情况下,检查你的HTTP服务器手册。

解释:

当您输入www.me.com/index.php时,PHP系统将您使用的echo命令生成的内容放入您的代码中。

当您输入www.me.com/myfiles/iou345yo13i2u4ybo34ybu3/passwords.txt时,您的服务器将把文件内容放入客户端浏览器,它将要求您将其作为文件下载或显示为页面,具体取决于文件扩展名。

现在,如果你在。htaccess文件中这样做:

 RewriteEngine On
 RewriteRule ^myfiles/([^/]*)^.pdf$ /index.php?file=$1& [L]
 # avoit direct access to your server directories file listing
 Options All -Indexes

您将键入www.me.com/myfiles/file123.pdf,但服务器将执行index.php,并将文件名作为"file"参数的内容,并且在代码中,您将能够检查会话以查看用户是否具有下载该文件的授权。

如果用户有授权,那么使用readfile()函数将文件发送给用户,他将无法识别文件来自何处(我的意思是真正的路径)。

看一下怎么做:

PHP -发送文件给用户

将您的内容更改为644权限

相关内容

  • 没有找到相关文章

最新更新