首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何保护远程目录中的可下载文件不被非高级用户访问( php?)

如何保护远程目录中的可下载文件不被非高级用户访问( php?)
EN

Stack Overflow用户
提问于 2009-10-11 07:12:12
回答 4查看 500关注 0票数 1

我正在建立一个“高级”部分的我的网站和即时通讯需要给予下载访问的文件在远程直接(在不同的服务器上),有特殊特权的用户(帐户存储在mysql数据库中)。我的网站是用php/mysql编码的,所以php解决方案会很棒。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-10-11 07:22:13

将所有下载链接指向一个php文件,该文件将执行所有的凭证检查。

您可以将该文件命名为download.php

通过cookie、get、post、session或任何验证权限的方式传递参数。

一旦验证了凭据,您就可以发送相应的标头。

如果是图像,则头文件应为header("Content-type: image/jpeg");

我假设您也拥有这个远程服务器。

一些有用的链接:

MIME types

PHP Header Function

票数 3
EN

Stack Overflow用户

发布于 2009-10-11 07:28:11

正如@pxl所说,您需要检查授权,然后将正确的mime类型作为HTML头输出(就像他所说的:header("Content-type: image/jpeg");)

此外,一旦完成此操作,您将需要输出文件的实际内容以及文件的大小(以字节为单位):

代码语言:javascript
运行
复制
header("Content-Length: ".filesize("FILENAME")*1.001);
/* The *1.001 puts a nice buffer on the filesize, I read about it online.
Browsers will stop downloading exactly at the Content-Length, but if they go
over, it's not a big deal at all. */
readfile("FILENAME");
die();

只需确保将文件存储在无法从web访问的目录中即可。

票数 2
EN

Stack Overflow用户

发布于 2009-10-11 07:23:40

我习惯于在内置了它的ASP.NET中这样做,但是这个article似乎记录了您的实际情况。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1550071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档