# uploads/ —— 整个目录**禁止 Web 直接访问**。 # # 为什么从"只禁脚本"升级成"全禁": # 原本只挡了 .php 之类的可执行扩展名,其余文件(头像、附件、以及 # 历史遗留的 *.{sql,txt,log,zip} 之类)都能被**任何人**按地址直接下载 —— # 只要文件名泄出去(分享过链接、日志里出现过、被爬过),就等于公开。 # 排查这类事故时还会遇到"备份文件其实是原样吐出的源码"那种更糟的情况。 # # 现在所有附件一律经 media.php 代理出去: # · 是否可见由**登录态**决定,而不是"知道文件名"; # · 云端桶也可设成私有,不必为了显示图片开公共读。 # # ⚠️ 这条规则不是"多一道保险"而是"唯一的门"—— media.php 读文件走的是 # 文件系统(PHP 进程),不受 .htaccess 影响,所以功能不会因此受损。 # 若哪天发现图片不显示,先看 media.php 有没有报错,别急着重开直连。 # Apache 2.4 Require all denied # Apache 2.2 Order allow,deny Deny from all # 关掉目录列表 Options -Indexes # 顺带把可能的备份/临时文件也点名拒掉(防"规则文件被自己的副本绕过") Require all denied Order allow,deny Deny from all