当我不是我的网络应用程序时,我需要最好的方法来阻止对doc文件的任何访问,例如,我需要从搜索引擎或公共用户隐藏一些文件,只有私人用户可以访问和下载它们。< / p>
我想将文件保存在文件系统中,而不是保存在数据库中,以免增加数据库使用量。
答案 0 :(得分:3)
您可以将文件存储在文件系统中,无法通过URL(例如根网站目录的兄弟)访问的目录中。这将阻止直接访问。
然后,编写一个PHP脚本,当查询给定文件时,将检查用户是否可以访问该文件,并使用readfile
(以及header
发送内容类型和内容处理)。
答案 1 :(得分:2)
当你说“私人用户”时,我只是假设这意味着这些用户以某种方式进行了身份验证。您可以将这些文件存储在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');
请记住在webroot之外创建该目录,并将权限设置为脚本运行的同一用户(无人,通常在apache下)。
答案 2 :(得分:0)
Robots.txt是一种阻止/允许某些HTTP用户代理的方法。但这并不是最安全的方式。您可以使用基本身份验证让您的Web应用程序登录。