اطلب مجلّدًا لا ملفّ فهرس فيه، فكثير من الخوادم يعرض قائمة الملفّات بدلًا من ذلك. النسخ الاحتياطية والتصديرات ونسخةٌ قديمة من ملفّ إعدادات — كل ما يقبع هناك صار علنيًّا، والماسحات الآلية تبحث عن هذا بالضبط.

Nginx

autoindex off;      # the default, so check nobody turned it on
grep -rn autoindex /etc/nginx/

وApache وLiteSpeed

Options -Indexes

# or per directory, in .htaccess
Options -Indexes

افحص كل مجلّد لا الجذر وحده

for d in uploads backup files export logs tmp; do
  printf '%-10s ' "$d"
  curl -sS -o /dev/null -w '%{http_code}\
' "https://yourdomain.com/$d/"
done

ردّ 200 على أيٍّ منها يستحقّ أن تفتحه في متصفّح الآن. أمّا 403 أو 404 فهو ما تريده.

وملفّ فهرس فارغ حلٌّ ضعيف

وضع index.html في كل مجلّد يُخفي القائمة والملفّات تبقى قابلة للوصول بالاسم. يمنع نظرةً عابرة ولا شيء غير ذلك — أطفئ الخيار عند الخادم بدلًا من ذلك.

والجواب الحقيقيّ للملفّات الخاصّة

كل ما لا ينبغي أن يكون علنيًّا لا ينبغي أن يكون تحت جذر المستندات أصلًا. أبقِه خارجه وقدّمه عبر سكربت يفحص مَن السائل.

/var/www/site/
  public/      <- the document root
  storage/     <- backups, exports, logs: no URL can reach these
وما دمت تنظر، ابحث عن الملفّات التي يتركها الناس خلفهم: ‎.env‎ و‎.git‎ و‎config.php.bak‎ و‎database.sql‎. نسخةُ مصدرٍ متروكة في جذر الويب سرّبت تطبيقات كاملة — اطلب كلًّا منها وتأكّد أنها ليست هناك.