
به اشتراک بگذارید
امنیت وردپرس | بلاگ وبداده
غیرفعال کردن Directory Browsing در وردپرس
- مشکل چیست: نمایش صفحه «Index of /» یعنی هر کسی میتواند ساختار فایل، افزونهها و فایلهای حساس شما را ببیند.
- سادهترین راه: ابزار Indexes در سیپنل، بدون نوشتن حتی یک خط کد.
- روش کلاسیک: افزودن دستور
Options -Indexesبه فایل .htaccess روی سرور آپاچی. - کاربران Nginx: فعال بودن
autoindex offکه معمولاً پیشفرض هم هست. - واقعیت صادقانه: این کار فقط «فهرست» را میبندد؛ جای کنترل دسترسی و رمزگذاری فایلها را نمیگیرد.
در یک نگاه
غیرفعال کردن Directory Browsing وردپرس چیست و چرا لازم است؟
index.php یا index.html وجود نداشته باشد، سرور بهجای نمایش خطا، محتوای همان پوشه را به شکل یک فهرست کلیکشدنی (صفحه معروف «Index of /») به بازدیدکننده نشان میدهد.wp-content/uploads) استاندارد و شناختهشده است، این موضوع در عمل نقشهای از سایت بهدست مهاجم میدهد.یک تشبیه ساده
چرا وردپرس بهتنهایی کافی نیست؟

فعال بودن فهرستگیری دایرکتوری چه خطری دارد؟
- نشت اطلاعات (Information Leakage): افشای ساختار فایل، نام و نسخه افزونهها و قالبها که به مهاجم کمک میکند آسیبپذیریهای شناختهشده را هدف بگیرد.
- دسترسی مستقیم به فایلها: فایلهای بکاپ، لاگ، متنی یا پیکربندی که ایندکس ندارند، ممکن است قابل مشاهده و دانلود شوند.
- افزایش سطح حمله: هرچه مهاجم اطلاعات بیشتری از ساختار سایت داشته باشد، حمله هدفمندتر و سادهتر میشود.
- سوءاستفاده خودکار: رباتها با جستوجوی ساده در گوگل، سایتهایی با فهرستگیری باز را پیدا و فهرستبندی میکنند.
نقلقول از مستندات رسمی آپاچی
روشهای بستن فهرستگیری دایرکتوری (گامبهگام)
قبل از شروع: یک بکاپ بگیرید
روش اول: ابزار Indexes در سیپنل (سادهترین راه، بدون کد)
Advanced (پیشرفته) وارد ابزار Indexes شوید، پوشهای را که میخواهید تنظیم کنید انتخاب کنید و گزینه No Indexing را بزنید و ذخیره کنید. سیپنل پشت صحنه همان خط لازم را به فایل .htaccess همان پوشه اضافه میکند (و اگر .htaccess نبود، میسازد). از این به بعد، بهجای فهرست فایلها، بازدیدکننده خطای 403 Forbidden میبیند.
روش دوم: افزودن دستور Options -Indexes به فایل htaccess
.htaccess در پوشه ریشه سایت (کنار wp-config.php) است. این روش روی سرورهای آپاچی و لایتاسپید که در هاستهای سیپنل رایجاند کار میکند. کافی است این خط را اضافه کنید؛ فقط دقت کنید آن را خارج و بالای بلاک # BEGIN WordPress ... # END WordPress بگذارید، چون وردپرس آن بلاک را هنگام بازنویسی پیوندهای یکتا بازسازی میکند و تغییرات داخلش پاک میشود:# --- تنظیمات سفارشی وبداده: این خطوط را بالای بلاک وردپرس قرار دهید ---
# غیرفعالسازی فهرستگیری دایرکتوری روی سرور آپاچی و لایتاسپید
Options -Indexes
# BEGIN WordPress
# هشدار: این بخش را وردپرس خودکار مدیریت میکند؛ چیزی داخل آن ننویسید.
# END WordPressApacheچطور درست بودنش را تست کنم؟
example.com/wp-content/uploads/. اگر بهجای فهرست فایلها خطای 403 Forbidden ببینید، یعنی تنظیم درست اعمال شده است. اگر هنوز فهرست را میبینید، کش مرورگر را پاک کنید و دوباره امتحان کنید.روش سوم: کاربران Nginx و دستور autoindex off
autoindex off; را در بلاک server یا location قرار دهید:# فایل کانفیگ Nginx: داخل بلاک server یا location این خط را اضافه کنید
server {
# ... سایر تنظیمات سایت ...
location / {
autoindex off; # غیرفعال کردن فهرستگیری دایرکتوری
}
}Nginxنکته درباره هاست اشتراکی
روش چهارم: استفاده از افزونههای امنیتی وردپرس
اگر بعد از ویرایش htaccess خطای 500 گرفتید چه کنید؟
جدول مقایسه روشهای غیرفعالسازی فهرستگیری
| روش | سطح دشواری | نیاز به دسترسی | مناسب برای | کار روی Nginx؟ |
|---|---|---|---|---|
| ابزار Indexes سیپنل | بسیار آسان | پنل سیپنل | همه، بهویژه تازهکارها | خیر (مخصوص آپاچی) |
| ویرایش .htaccess | متوسط | دسترسی به فایلها | کاربران آپاچی/لایتاسپید | خیر |
| دستور autoindex off | متوسط (فنی) | کانفیگ سرور | سرورهای Nginx | بله |
| افزونه امنیتی | آسان | پیشخوان وردپرس | کسانی که افزونه امنیتی دارند | بله (وابسته به افزونه) |
پیشنهاد ما برای شروع
Options -Indexes در .htaccess کار را تمام میکند. کاربران Nginx هم فقط باید از خاموشبودن autoindex مطمئن شوند.میزبانی امن وردپرس در وبداده
✅ دیتاسنترهای متنوع در ایران، هلند و آلمان برای انتخاب نزدیکترین لوکیشن.
✅ کنترلپنل سیپنل با ابزار Indexes و مدیر فایل برای اعمال آسان همین تنظیمات.
✅ پشتیبانی فنی ۲۴ ساعته برای کمک در ویرایش .htaccess، تنظیم سرور و بازگردانی بکاپ.
تجربه پشتیبانی وبداده
معایب و محدودیتهایی که باید بدانید
Options -Indexes فقط روی سرورهای آپاچی/لایتاسپید کار میکند و روی Nginx بیاثر است. سوم، ویرایش نادرست .htaccess میتواند کل سایت را با خطای 500 از دسترس خارج کند. جمعبندی: این کار یک قدم لازم و ساده در امنسازی است، اما باید در کنار بهروزرسانی مرتب، رمز قوی و بکاپ منظم دیده شود، نه بهجای آنها.پرسشهای پرتکرار درباره فهرستگیری دایرکتوری
از کجا بفهمم فهرستگیری دایرکتوری در سایتم فعال است؟
آدرس یک پوشه بدون فایل ایندکس را در مرورگر باز کنید؛ مثلاً example.com/wp-content/uploads/ یا یک پوشه دلخواه. اگر بهجای صفحه سایت یا خطای 403، فهرستی از فایلها و پوشهها با عنوان «Index of /» دیدید، یعنی فهرستگیری فعال است و باید آن را ببندید.
آیا بستن Directory Browsing به سئوی سایت آسیب میزند؟
خیر. این تنظیم فقط جلوی نمایش فهرست فایلها به کاربر را میگیرد و هیچ تأثیر منفیای بر خزش، ایندکس شدن صفحات یا رتبه سایت در گوگل ندارد. برعکس، بستن نشت اطلاعات یک نشانه مثبت از نظر امنیت و اعتماد است.
تفاوت خطای 403 و 404 بعد از بستن فهرستگیری چیست؟
بعد از غیرفعال کردن فهرستگیری، وقتی پوشهای بدون فایل ایندکس باز شود معمولاً خطای 403 Forbidden (دسترسی ممنوع) نمایش داده میشود، یعنی سرور از نشاندادن محتوا خودداری میکند. این با 404 (یافت نشد) فرق دارد؛ 403 یعنی مسیر وجود دارد ولی دسترسی به فهرستش بسته است.
روی هاست اشتراکی که دسترسی به کانفیگ سرور ندارم چه کنم؟
اگر هاست شما آپاچی/سیپنل است، از ابزار Indexes سیپنل یا ویرایش .htaccess استفاده کنید که هر دو در سطح کاربر ممکناند. اگر سرور Nginx است و به کانفیگ دسترسی ندارید، کافی است از پشتیبانی هاست بخواهید فهرستگیری دایرکتوری را برایتان غیرفعال کند.
آیا وردپرس بهصورت پیشفرض این قابلیت را میبندد؟
بهطور کامل نه. هسته وردپرس در بعضی پوشهها یک فایل index.php خالی میگذارد تا محتوایشان فهرست نشود، اما این کار همهی زیرپوشهها، بهویژه پوشههای آپلود و پوشههای ساختهشده توسط افزونهها را پوشش نمیدهد. برای همین بستن در سطح سرور همچنان توصیه میشود.
خط Options -Indexes را دقیقاً کجای فایل .htaccess بگذارم؟
آن را در بالای فایل و خارج از بلاک # BEGIN WordPress تا # END WordPress قرار دهید. چون وردپرس محتوای داخل آن بلاک را هنگام ذخیره تنظیمات پیوند یکتا بازنویسی میکند و اگر خط شما داخل آن باشد، ممکن است پاک شود.
بعد از ویرایش .htaccess سایتم خطای 500 داد؛ چطور برگردانم؟
از طریق مدیر فایل هاست یا FTP وارد شوید، خطی را که اضافه کردهاید حذف کنید یا فایل .htaccess را به نسخه بکاپ برگردانید. سایت بلافاصله به حالت قبل بازمیگردد. اگر بکاپ ندارید، میتوانید نام فایل .htaccess را موقتاً تغییر دهید تا سرور آن را نادیده بگیرد.
آیا برای این کار حتماً به افزونه نیاز دارم؟
نه لزوماً. روشهای سیپنل و .htaccess بدون هیچ افزونهای کار را انجام میدهند. افزونههای امنیتی فقط یک راه جایگزین و راحتترند؛ اگر از قبل افزونه امنیتی دارید از گزینهاش استفاده کنید، وگرنه نیازی به نصب افزونه جدید فقط برای این کار نیست.
جمعبندی و چکلیست نهایی
چکلیست سریع
✅ اگر سیپنل دارید، از ابزار Indexes و گزینه No Indexing استفاده کنید.
✅ کاربران آپاچی: خط Options -Indexes را بالای بلاک وردپرس در .htaccess بگذارند.
✅ کاربران Nginx: از فعال بودن autoindex off مطمئن شوند.
✅ با باز کردن آدرس یک پوشه، دیدن خطای 403 را بهجای فهرست فایلها تست کنید.
✅ امنیت را یک فرایند مداوم ببینید: بهروزرسانی و بکاپ منظم را ادامه دهید.



