我需要最好的方式来防止任何访问doc文件,当它不是我的web应用程序,例如,我需要一些文件隐藏搜索引擎或公共用户,只有私人用户可以访问并下载它们。如何限制通过浏览器仅通过我的web应用程序下载文件系统
我想将文件保存在文件系统中而不是数据库中,以免增加数据库使用率。
我需要最好的方式来防止任何访问doc文件,当它不是我的web应用程序,例如,我需要一些文件隐藏搜索引擎或公共用户,只有私人用户可以访问并下载它们。如何限制通过浏览器仅通过我的web应用程序下载文件系统
我想将文件保存在文件系统中而不是数据库中,以免增加数据库使用率。
您可以将文件存储在文件系统中无法通过URL访问的目录中(例如根网站目录的同级)。这将阻止直接访问。
然后,编写一个PHP脚本,当查询给定文件时,它将检查用户是否可以访问该文件,并以readfile
(以及header
用于内容类型和内容处置)发送它。
Robots.txt是一种阻止/允许某些HTTP用户代理的方法。这不是最安全的方式。您可以使用基本身份验证让您的Web应用程序登录。
当你说“私人用户”只我假设这意味着这些用户以某种方式进行身份验证。您可以将这些文件存储在Web目录之外,然后通过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下)。
好悲痛的人在这里发布回答这么多快,然后我:) – Erik 2009-12-30 09:37:58
+1 - 好的回答:) – 2009-12-30 09:59:47