我需要最好的办法,以防止文档文件的任何访问时,它不是我的web应用程序,例如,我需要一些文件从搜索引擎或公共用户和唯一的私人用户可能会达到并下载它们隐藏起来。

我想这些文件在文件系统中,而不是在数据库保存,以便不增加DB使用。

有帮助吗?

解决方案

您可以将您的文件在文件系统中,无法通过一个URL(比如你的web根目录的兄弟)访问的目录。这将避免直接访问。

然后,写一个PHP脚本,查询对于给定的文件时,将检查该用户是否可以访问该文件,并用readfile发送它(与header的内容类型和内容的配置一起)。

其他提示

当你说“个人用户”只有我假设的手段,这些用户以某种方式进行身份验证。你可以保存网页目录以外这些文件,然后通过PHP / Perl的/ Your_Favorite_Programming_language为他们服务了。

一个链路可能会导致一个脚本,检查是否该用户被认证,如果是这样,服务文件向上通过该脚本。

在PHP中,认证用户后,可以使用:

header('Content-disposition: attachment; filename=movie.mpg');
header('Content-type: video/mpeg');
readfile('/full/path/to/your/files/movie.mpg');

请记住,使该目录的根目录之外,并且权限设置为相同的用户,你的脚本,运行(没人,一般在Apache)。

robots.txt的是一种方法,块/允许某些HTTP用户代理商。这虽然不是最安全的方式。你可以使用基本身份验证,让你的web应用程序登录。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top