نمایش لیست فایل‌ها (Directory Listing یا Indexing) زمانی رخ می‌دهد که کاربر به یک پوشه وب سایت دسترسی پیدا کند و در آن فایل index (مثل index.html یا index.php) وجود نداشته باشد. در این حالت وب‌سرور محتویات پوشه را نمایش می‌دهد. نمایش لیست فایل‌ها می‌تواند اطلاعات حساسی مثل بک‌آپ‌ها، فایل‌های پیکربندی، اسکریپت‌های خام یا فایل‌هایی با دسترسی محدود را در معرض دید قرار دهد و ریسک‌های امنیتی ایجاد کند. در این مقاله روش‌های متداول برای غیرفعال کردن یا مخفی کردن Directory Listing در دو کنترل پنل محبوب (cPanel و DirectAdmin)، و نکات تکمیلی امنیتی، آمده است. چرا باید نمایش لیست فایل‌ها را غیرفعال کنیم؟ جلوگیری از افشای فایل‌ها و پوشه‌های حساس کاهش اطلاعاتی که مهاجم می‌تواند برای شناسایی آسیب‌پذیری‌ها استفاده کند افزایش کلی سطح امنیت وب‌سایت جلوگیری از مشاهده فایل‌های پشتیبان، فایل‌های خروجی، یا فایل‌های موقتی   روش کلی مخفی کردن لیست فایل ها (مناسب برای اکثر سرورها) قرار دادن یک فایل index: ساده‌ترین روش ایجاد یک فایل index.html یا index.php خالی در پوشه‌هایی است که می‌خواهید از لیست شدن جلوگیری کنید.مثال index.html ساده:   <!DOCTYPE html> <html><head><meta charset="utf-8"><title>Forbidden</title></head><body></body></html> روش 1 — استفاده از فایل .htaccess (مخصوص آپاچی / litespeed، کاربردی در cPanel و گاهی DirectAdmin) در روت هر پوشه یا در public_html فایل .htaccess ایجاد یا ویرایش کنید. برای غیرفعال کردن فهرست بندی (Directory Listing) دستور زیر را اضافه کنید:Options -Indexes برای نمایش پیغام 403 سفارشی:Options -IndexesErrorDocument 403 /403.html(که باید فایل 403.html را در روت سایت ایجاد کنید) نکات: مطمئن شوید سرور شما اجازه خواندن .htaccess را می‌دهد (AllowOverride تنظیم شده باشد). برخی هاست‌ها با Nginx یا تنظیمات متفاوت رفتار می‌کنند و .htaccess روی آن‌ها اعمال نمی‌شود.   روش 2 — تنظیمات Apache از طریق WHM/cPanel (برای کاربرانی که دسترسی روت یا WHM دارند) ورود به WHM → Apache Configuration → Global Configuration یا Apache Configuration → Include editor (بسته به نسخه) در تنظیمات اصلی می‌توانید Indexes را غیرفعال کنید یا تغییرات در VirtualHost اعمال کنید: در پیکربندی VirtualHost مربوطه گزینه Options را بررسی و Indexes را حذف کنید. بعد از اعمال تغییر، Apache را ری‌استارت کنید.   روش 3 — در DirectAdmin (کنترل پنل با دسترسی کاربر/ادمین) DirectAdmin به طور پیش‌فرض ممکن است فهرست بندی را کنترل کند، اما برای اعمال تغییر می‌توانید: اگر دسترسی به فایل .htaccess دارید از Options -Indexes استفاده کنید. اگر دسترسی root دارید و Nginx را در جلو دارید، autoindex off را در کانفیگ Nginx اضافه کنید. برخی تنظیمات و templateهای DirectAdmin برای Apache را می‌توان ویرایش کرد (در مسیرهای templates/apache یا similar) — این کار نیاز به دقت و بک‌آپ دارد.   روش 5 — از طریق File Manager در cPanel (روش ساده برای کاربران بدون دسترسی SSH) وارد cPanel شوید → File Manager → به پوشه مورد نظر بروید اگر index.html یا index.php وجود ندارد: از گزینه +File یک فایل index.html خالی بسازید تا محتوای پوشه نمایش داده نشود. برای ایجاد یا ویرایش .htaccess: در فایل منیجر فایل .htaccess را مشاهده/ایجاد و Options -Indexes را اضافه کنید.   روش 6 — جلوگیری از دسترسی به فایل‌ها یا پوشه‌های خاص با .htaccess برای جلوگیری از دسترسی به فایل‌هایی با پسوند مشخص یا پوشه‌های خاص: جلوگیری از نمایش محتویات هر پوشه Options -Indexes جلوگیری از دسترسی به فایل‌های backup <Files ~ “.(bak|sql|tar|gz|zip)$”> Require all denied </Files> توجه: برای سرورهایی با Apache 2.2 از دستورالعمل‌های قدیمی (Deny from all) استفاده می‌شود؛ در Apache 2.4 از Require all denied استفاده کنید. نکات امنیتی تکمیلی حذف فایل‌های بک‌آپ از public_html: فایل بک‌آپ یا export دیتابیس را هرگز در پوشه عمومی بارگذاری نکنید. محدود کردن دسترسی به فایل‌های حساس (مثل .env, config.php) با قوانین .htaccess استفاده از فایل robots.txt برای جلوگیری از ایندکس شدن دایرکتوری‌ها توسط موتورهای جستجو (توضیح: این فقط یک درخواست به ربات‌ها است و امنیت واقعی ایجاد نمی‌کند).مثال:User-agent: *Disallow: /backups/ بررسی مجوز فایل‌ها و پوشه‌ها (Permissions): پوشه‌ها معمولاً 755 و فایل‌ها 644 باید داشته باشند. تنظیمات صحیح را حفظ کنید. اسکن دوره‌ای وب‌سایت با ابزارهای امنیتی یا افزونه‌های امنیتی (مثل Wordfence برای وردپرس یا ابزارهای مشابه). استفاده از WAF یا سرویس CDN مثل Cloudflare برای کاهش ریسک حملات. روش تست پس از اعمال تغییر مسدود کردن نمایش لیست: مرورگر را باز کنید و به URL پوشه‌ای در سایت بروید (مثلاً example.com/uploads/) که index ندارد. باید پیام 403 یا صفحه خالی یا ریدایرکت به index را ببینید. برای اطمینان از جلوگیری از دسترسی به فایل‌های مشخص: مستقیماً آدرس فایل بک‌آپ را باز کنید (مثلاً example.com/backup.sql) و باید دسترسی مسدود باشد. استفاده از ابزارهای آنلاین برای بررسی Indexing: برخی سرویس‌های تست امنیتی می‌توانند نمایش دایرکتوری را چک کنند. نمونه‌های عملی و آماده برای کپی — خلاصه ساده‌ترین: ایجاد index.html خالی در هر پوشه‌ای که نمی‌خواهید فهرست شود. .htaccess (در ریشه یا پوشه): Options -Indexes ErrorDocument 403 /403.html جلوگیری از دسترسی به فایل‌های پنهان: <FilesMatch “^.”> Require all denied </FilesMatch> جلوگیری از دسترسی به بک‌آپ‌ها: <Files ~ “.(bak|sql|tar|gz|zip)$”> Require all denied </Files> Nginx: location / { autoindex off; try_files $uri $uri/ =404; } اشکال‌زدایی متداول بعد از اضافه کردن .htaccess هنوز لیست نمایش داده می‌شود: بررسی کنید سرور شما Apache است و AllowOverride برای دایرکتوری فعال است. ممکن است Nginx جلوی Apache باشد؛ Nginx .htaccess را نمی‌خواند. کش مرورگر یا کش سرور را پاک کنید. پس از ویرایش کانفیگ سرور، فراموش نکنید وب‌سرور (Apache/Nginx) را ری‌لود یا ری‌استارت کنید. جمع‌بندی غیرفعال کردن Directory Listing یک گام ساده اما موثر در افزایش امنیت وب‌سایت است. برای کاربران cPanel استفاده از .htaccess یا ایجاد فایل index ساده‌ترین روش است. برای سرورهای Nginx باید در پیکربندی Nginx autoindex را خاموش کنید. همیشه از قوانین محافظتی برای فایل‌های حساس استفاده کنید و فایل‌های بک‌آپ را از پوشه‌های عمومی حذف کنید.