2013-01-24 59 views
0

可能重复:
Good Way to Secure File Uploads in PHP保护图像

我想用PHP上传一些图片,我知道它们存储在数据库中是不正确的做法,因此我将把它们存储在我的Web服务器上。

问题是,这个网站有一个用户系统,我只希望允许用户访问这些图像,如果我把它们放在网络服务器上,我如何保护它们,以便人们不能通过写一个直接的URL文件?

非常感谢您的帮助,如果您能够提供或参考一个示例,那将会很棒。

+1

简单。将它们放在文档根目录之外并登录。附:这只会阻止热链接等。记住你放在网上的所有东西都不在你的手中:) – PeeHaa

+1

为什么你认为将图像存储在数据库中是不好的做法? – Dai

+0

只需将它们存储在一个SQL表中......是什么让这种“不好的做法” – Nick

回答

1

您可以使用.htaccess来阻止用户访问这些图像的直接URL。

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] 
    RewriteRule ^images/$ /error.php 
</IfModule> 

将此文件放入文档根目录。