【问题标题】:Securing images on web server [duplicate]保护 Web 服务器上的图像 [重复]
【发布时间】:2025-12-30 14:55:16
【问题描述】:

可能重复:
Good Way to Secure File Uploads in PHP

我想通过php上传一些图片,我知道将它们存储在数据库中是不正确的做法,因此我将它们存储在我的网络服务器上。

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

感谢您的所有帮助,如果您能提供或参考一个示例,那就太好了。

【问题讨论】:

  • 简单。将它们放在您的文档根目录之外并在登录之后。附言这只会防止热链接等。请记住,您放入网络的所有内容都无法控制:)
  • 为什么您认为将图像存储在数据库中是不好的做法?
  • 只需将它们存储在 SQL 表中......是什么让这种“坏习惯”

标签: php file file-upload security


【解决方案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>

将此文件放在文档根目录下。

【讨论】: