آموزش غیر فعال کردن Directory Listing

17

آموزش غیر فعال کردن Directory Listing - آموزش غیر فعال کردن Directory Browsing

اینبار بدون حاشیه سراغ اصل مطلب میرویم. در آموزش امروز به همراه مسترکد خواهیم آموخت که دایرکتوری لیستینگ یا دایرکتوری برازینگ چیست؟ چرا لازم است آن را غیر فعال کنیم؟ و در پایان، چگونه میتوانیم دایرکتوری لیستینگ را در سایت خود غیر فعال کنیم. با ما همراه باشید.

Directory Listing یا Directory Browsing چیست؟

تا امروز حتما پیش آمده که آدرسی از یک سایت را در مرورگر خود باز کنید و بجای یک صفحه با لیست فایل ها و فولدر های موجود در آدرس ذکر شده مواجه شوید. مثلا آدرس فولدر wp-content را در یک سایت وردپرسی وارد کرده باشید و مرورگر به شما فولدر های افزونه ها، قالب ها، آپلود ها و غیره را نشان داده باشد. برای درک بهتر این موضوع به تصویر زیر توجه کنید :

نمونه دایرکتوری لیستینگ - نمونه دایرکتوری برازینگ - directory listing چیست؟

همانطور که در تصویر بالا نیز به خوبی قابل مشاهده است، پس از وارد کردن ادرس یک فولدر در سایت، با لیستی از فولدر ها و فایل های موجود در آن آدرس مواجه شده ایم که به این حالت دایرکتوری لیستینگ میگویند. یعنی وب سرور، لیستی از فایل ها را جهت مرور (Directory Browsing) به کاربر نمایش میدهد. این مسئله وقتی اتفاق می افتد که فولدر مورد نظر فاقد فایل ایندکس باشد. مثلا در این حالت اگر در این فولدر یک فایل با نام index.php یا index.html موجود بود، دیگر چنین اتفاقی نمی افتاد و بجای لیست فایل ها، محتوای فایل ایندکس به نمایش در می آمد.

چرا باید Directory Listing را غیر فعال کنیم؟

به دو دلیل فعال بودن دایرکتوری لیستینگ، برای سایت شما اصلا مناسب نیست. دلیل اول اینکه هکر ها میتوانند از این امکان برای پیدا کردن فایلهای قابل نفوذ در سایت شما استفاده کنند. مثلا یک هکر مشاهده میکند که شما پلاگین x را در سایت خود نصب کرده اید. در عین حال همان هکر از یک حفره ی امنیتی در همین پلاگین اطلاع دارد. بنابراین به سادگی از طریق کسب این اطلاعات، شروع به نفوذ به سایت شما میکند. دلیل دوم جلوگیری سوء استفاده توسط افراد سودجوست. بارها مشاهده شده که قالب ها و افزونه های تجاری، از روی سایت های کاربران، بخاطر همین فعال بودن امکان Directory Listing یا Directory Browsing به سرقت رفته اند. شخص سودجو به سادگی با جستجوی url مورد نظرش از طریق موتور های جستجو، به سایت شما دست پیدا کرده و شروع به ذخیره ی فایلهای مورد نیازش میکند. بنابراین همانطور که میبینید، فعال بودن این ویژگی معمولا به ضرر شماست.

چگونه Directory Listing را غیر فعال کنیم؟

غیر فعال کردن دایرکتوری لیستینگ / دایرکتوری برازینگ بسیار آسان است. برای انجام این کار دو روش پیش رو خواهید داشت. اولین روش این است که به سادگی در فولدری که مایل نیستید لیست فایل ها و فولدر های آن برای شخص بازدیدکننده به نمایش در بیاید، یک فایل ایندکس مانند index.php یا index.html قرار دهید. اصلا نیازی به اینکه این فایل را پر کنید نیست. تنها حضور این فایل در فولدر مورد نظر منجر به عدم نمایش لیست دایرکتوری ها خواهد شد.
بدیهی است که استفاده از شیوه ی فوق در زمانی که تعداد زیادی فولدر داشته باشید و بخواهید دایرکتوری لیستینگ را در همه ی آنها غیر فعال کنید، ایده آل نیست. چرا که باید ساعت ها وقت صرف قرار دادن فایل ایندکس در تمامی این فولدر ها کنید. اینجاست که باید دست به دامان فایل .htaccess شد و از شیوه ی دوم کمک گرفت. در شیوه ی دوم کافی است کد زیر را به فایل .htaccess سایت خود اضافه کنید :

توجه داشته باشید که فایل .htaccess یک فایل مخفی یا hidden است. بنابراین جهت مشاهده ی آن در فایل منیجر هاست یا کلاینت FTP لازم است نمایش فایل های hidden را فعال کرده باشید.
و در آخر هم طبق معمول، پیش از اعمال هر نوع تغییر در فایل های مورد نظرتان، از آنها بکاپ تهیه کنید تا در صورتی که در ویرایش فایل اشتباهی رخ داد، با استفاده از بکاپ، امکان بازگردانی وجود داشته باشد.

امیدواریم از این آموزش ساده و کوتاه لذت برده باشید.

دسترسی آسان به این مطلب لینک کوتاه :
QR Code For:  آموزش غیر فعال کردن Directory Listing
توضیحات محصول با بهره گیری از AI تولید شده و در برخی موارد ممکن است تا حدی با اطلاعات سایت رسمی متفاوت باشد.
شاید از اینها هم خوشتان بیاید!
17 دیدگاه
  1. moslim می گوید

    با سلام و خسته نباشید
    ممنون از آموزشتون کارم راه افتاد
    همیشه موفق باشید

    1. MrCode می گوید

      سلام
      خواهش میکنم. انشالله موفق باشید

  2. maik می گوید

    با سلام و خسته نباشید و ممنون بابت مطلب خوبتون
    من یه سوال خیلی ابتدایی دارم که واقعا ممنون میشم اگه راهنماییم کنید چون واقعا کلافه شدم. من یه سایت با asp.net ساختم اما وقتی رو هاست آپلودش میکنم کار نمیکنه و فقط لیست پوشه هامو نشون میده. واقعا ممنون میشم اگه راهنماییم کنید.

  3. شاندرمن می گوید

    سلام.
    ممنون از زحمات شما.
    گوگل خیلی از پوشه های wp content سایت من را ایندکس کرده است،چرا؟
    چگونه میتونم این صفحات ایندکس شده را از تو گوگل خارج کنم؟از وبمستر گوگل امکانش هست؟
    البته من کد داده شده در بالا را اضافه کردم اچ تی اکسس

    1. MrCode می گوید

      سلام
      ایندکس شدن محتوای موجود در wp-content ارتباطی به دایرکتوری لیستینگ نداره و گوگل عموما با لینک هایی که خودتون در سایت به تصاویر و … که در این فولدر موجود هستند میدید، اقدام به ایندکس کردن محتوای موجود در این بخش میکنه. دایرکتوری لیستینگ به حالتی میگیم که وقتی فولدری رو مورد دسترسی قرار میدیم، تمامی فایل های موجود در اون برای ما به صورت لیست به نمایش در میان که همونطور که عرض کردم جدا از مبحث ایندکس شدن هست.
      با توجه به اینکه فولدر wp-content حاوی تصاویر سایت شما هم هست، بنده جلوگیری از ایندکس شدنش رو توصیه نمیکنم ولی به هر شکل در صورتی که تصمیمتون این هست که جلوی ایندکس شدن این بخش رو توسط روبات های موتورهای جستجو بگیرید، باید از فایل robots.txt استفاده کنید و این بخش رو در این فایل ممنوع کنید. راهنمای استفاده از فایل robots.txt در زیر قابل مطالعه هست :
      https://mrcode.ir/?p=3693

      1. شاندرمن می گوید

        ممنون از پاسخ دهی سریع و کامل شما.

  4. Faeze می گوید

    سلام
    من همین کار رو کردم برای حذف دایرکتوری هام اما درست نشد . راه دیگه ای نداره؟

    1. MrCode می گوید

      سلام
      این آموزش برای غیر فعال کردن دایرکتوری لیستینگ هست و ارتباطی به حذف پوشه ها نداره.

      1. Faeze می گوید

        بله منظورم این بود که همچنان با سرچ سایت دایرکتوری لیست هام وجود دارن

      2. MrCode می گوید

        کار دیگه ای که میتونید بکنید اینه که در هر دایرکتوری یک فایل index.html یا index.php قرار بدید.

  5. محمدعلی می گوید

    چقد خوب بود، خیلی بدردم خورد مرسی 🙂

  6. ارشاد می گوید

    سلام خیلی خوب بود ممنون
    فقط چطور میشه اون اخطار 403 رو کهمیاره عوض کنیم؟؟

    1. MrCode می گوید

      سلام
      توی فایل htaccess سایتتون از این کد استفاده کنید :

      ErrorDocument 403 /dir/file.html

      بجای /dir/file.html فایل خطای 403 دلخواهتون رو قرار بدید.

  7. امیرحسین می گوید

    سلام من این کد رو امتحان کردم ولی بازم نشون میده دایرکتوری رو چکار کنم؟

  8. شاهو می گوید

    با سلام
    تمامی عزیزانی که آموزش بستن و محدود کردن دایرکتوری بروزینگ رو میدهند، استفاده از این کد را آموزش میدهند.
    بنده این کد را در درون فایل htaccess قرار دادم ولی حالا بار اول که مسیر دایرکتوری های قالب را لود میکنم فایل های آن دایرکتوری همگی لیست می شوند و با ری فرش کردن صفحه این بار دسترسی بسته میشود! یعنی عملا این کار بی فایده است.
    بنظرتون دلیل این که همون بار اول دسترسی رو نمی بنده چیست؟

  9. علی حاجی پور می گوید

    عالی بود. سپاس

  10. amir می گوید

    دمت گرم

  11. ابوالفضل می گوید

    سلام، چطور میتونم یک مسیر خاص و Directory Listing فعال کنم و دیگر مسیر ها غیر فعال؟

ارسال پاسخ

آدرس ایمیل شما منتشر نخواهد شد.