جلوگیری از نمایش محتویات پوشه‌ها و افزایش امنیت وب‌سایت

حتماً! در ادامه یک مقاله کامل و جامع درباره جلوگیری از نمایش فایل‌ها و پوشه‌های سایت برای افزایش امنیت آماده کردم که می‌تونی توی سایتت منتشر کنی:


جلوگیری از نمایش محتویات پوشه‌ها و افزایش امنیت وب‌سایت

یکی از روش‌های مهم برای افزایش امنیت وب‌سایت جلوگیری از نمایش محتویات پوشه‌ها به بازدیدکنندگان است. وقتی دسترسی به فایل‌ها و فولدرهای سایت به‌صورت مستقیم آزاد باشد، مهاجمان می‌توانند ساختار سایت را مشاهده کنند و از اطلاعات حساس سوءاستفاده نمایند. در این مقاله به روش‌های مختلف جلوگیری از این مشکل می‌پردازیم.


مشکل نمایش فایل‌ها و پوشه‌ها چیست؟

اگر در مرورگر آدرس پوشه‌ای مثل:

https://example.com/uploads/

را وارد کنیم و در آن پوشه فایلی با نام index.php یا index.html وجود نداشته باشد، ممکن است مرورگر فایل‌ها و فولدرهای موجود در آن مسیر را به صورت لیست نمایش دهد. این موضوع می‌تواند باعث افشای اطلاعات حساس مثل فایل‌های پشتیبان، اسکریپت‌ها یا عکس‌های خصوصی شود.


روش اول: ایجاد فایل index.php یا index.html در هر پوشه

یکی از ساده‌ترین و سریع‌ترین روش‌ها ایجاد یک فایل index.php یا index.html خالی یا با پیامی ساده در هر پوشه است تا وقتی کاربر به آن پوشه مراجعه کرد، این فایل لود شود و لیست فایل‌ها نشان داده نشود.

نمونه کد index.php که نمایش محتویات را مسدود می‌کند:

<?php exit('دسترسی مستقیم به این پوشه ممنوع است.'); ?>

یا فقط یک فایل خالی (بدون محتوا) کافی است.

این فایل را در تمام پوشه‌های سایت که نمی‌خواهید محتویات آنها نمایش داده شود قرار دهید.


روش دوم: غیرفعال کردن Directory Listing با فایل .htaccess

اگر سرور شما آپاچی است، می‌توانید با اضافه کردن یک خط کد به فایل .htaccess در پوشه اصلی سایت، از نمایش لیست فایل‌ها جلوگیری کنید.

کد مورد نیاز در فایل .htaccess:

Options -Indexes

این خط باعث می‌شود که وقتی کاربری به یک پوشه بدون فایل index مراجعه کند، به جای نمایش لیست فایل‌ها، با خطای 403 (دسترسی ممنوع) مواجه شود.


روش سوم: محدود کردن دسترسی به پوشه‌های حساس

برای پوشه‌هایی که حاوی فایل‌های مهم یا شامل کدهای سایت هستند (مثلاً پوشه includes یا config)، بهتر است با .htaccess دسترسی به آن‌ها را کاملاً مسدود کنید:

نمونه کد برای جلوگیری از دسترسی به پوشه‌های حساس:

# جلوگیری از دسترسی به پوشه includes
<Directory "/home/username/public_html/includes">
    Order deny,allow
    Deny from all
</Directory>

اگر دسترسی به .htaccess در دایرکتوری ریشه دارید، می‌توانید به صورت زیر عمل کنید:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^includes/ - [F,L,NC]
RewriteRule ^config.php - [F,L,NC]
</IfModule>

روش چهارم: مسدود کردن دسترسی به فایل‌های حساس از طریق کد PHP

برای مثال در پوشه installer که مربوط به نصب نرم‌افزار است، بهتر است پس از نصب، دسترسی مستقیم به صفحه نصب را مسدود کنید.

نمونه کد در index.php پوشه installer:

<?php exit('نصب قبلاً انجام شده است.'); ?>

یا در صورت نیاز به هدایت به صفحه اصلی:

<?php
header('Location: ../index.php');
exit;
?>

نکات تکمیلی برای امنیت وب‌سایت

  • همیشه در پوشه‌های دارای فایل‌های حساس مانند config.php یا database.sql دسترسی مستقیم کاربران را محدود کنید.

  • اگر امکان دارد، این فایل‌ها را خارج از پوشه public_html قرار دهید تا به طور مستقیم از طریق وب قابل دسترس نباشند.

  • برای دسترسی‌های مدیریتی از احراز هویت (login و رمز عبور) استفاده کنید.

  • فایل‌های بکاپ را در مسیرهای قابل دسترس عموم نگذارید.

  • از به‌روزرسانی مرتب CMS، پلاگین‌ها و اسکریپت‌ها اطمینان حاصل کنید.

  • در صورت امکان از HTTPS استفاده کنید تا داده‌های منتقل شده رمزگذاری شوند.


جمع‌بندی

با انجام این مراحل ساده می‌توانید جلوی نمایش ناخواسته فایل‌ها و پوشه‌های سایت خود را بگیرید و امنیت سایت را تا حد زیادی افزایش دهید:

  1. در هر پوشه‌ای که نیازی به نمایش فایل‌ها نیست، یک فایل index.php با محتوای <?php exit; ?> قرار دهید.

  2. در فایل .htaccess ریشه سایت، گزینه Options -Indexes را فعال کنید.

  3. دسترسی به پوشه‌ها و فایل‌های حساس را با .htaccess محدود کنید.

  4. پوشه‌های نصب را پس از اتمام نصب غیرفعال یا محافظت کنید.

  • Email, SSL
  • 5 کاربر این را مفید یافتند
آیا این پاسخ به شما کمک کرد؟

Related Articles

استایل دادن به نمایش نقطه های اسلایدر ( ناوبری )

برای اینکه نقطه‌های ناوبری (Navigation Dots) اسلایدر المنتور رو از شکل سنتی (دایره‌ای) به شکلی...

حذف محصولات ناموجود صفحه اصلی

حذف محصولات ناموجود از صفحه اصلی این کد تمامی محصولات ناموجود را از صفحه اصلی سایت شما حذف...

افزودن فیلد جستجو به دسته‌بندی‌های محصول

مدیریت دسته‌بندی‌های محصولات در فروشگاه ووکامرس می‌تواند با افزایش تعداد دسته‌ها دشوار و زمان‌بر...

حذف نشان و لوگو وردپرس در پیشخوان کاربری

حذف نشان و لوگو وردپرس در پیشخوان کاربری؛ بسیاری از وب‌سایت‌ها با وردپرس طراحی شده‌اند. حذف...

دکمه مشاهده محصول و لینک شدن به صفحه محصول

دکمه مشاهده محصول با کد نویسی و شورت کد در فایل فانکشن ویرایشگر پوسته این کد امکان اضافه کردن...