محدود کردن دسترسی به فایلهای وردپرس با استفاده از htaccess
در حالی که شما بر تولید محتوا و افزایش مخاطبان خود تمرکز میکنید، باید بدانید که وردپرس در برابر مهاجمان آسیب پذیر است. فایل ها و دایرکتوریهای مهم ممکن است سایت شما را در معرض تهدیدات امنیتی جدی قرار دهند.محدود کردن دسترسی به فایلهای وردپرس با استفاده از htaccess میتواند شرایط را تغییر دهد.
فایل .htaccess اولین خط دفاعی شماست، یک ابزار امنیتی قدرتمند اما اغلب نادیده گرفته شده که درست در محل نصب وردپرس قرار دارد.
این مطلب شما را با استفاده از htaccess. برای قفل کردن اجزای حساس از جمله فایل wp-config.php، دایرکتوری wp-admin و حتی کنترل دسترسی به فایلهای رسانهای و سایر داراییها راهنمایی میکند.
چه یک توسعه دهنده وردپرس باشید که به دنبال پیاده سازیهای امنیتی پیشرفته باشید یا صاحب سایتی باشید که به دنبال محافظت مستقیم هستید، تکنیکهای عملی برای تقویت وب سایت خود در برابر دسترسیهای غیرمجاز و حملات رایج خواهید یافت. در پایان این راهنما، شما اقدامات امنیتی قوی را اجرا خواهید کرد که بیصدا در پسزمینه کار میکنند و از سایت شما بدون تاثیرگذاری بر فعالیت کاربران محافظت مینمایند.
htaccess. چیست؟
htaccess. مخفف hypertext access و یک فایل پیکربندی است که در دایرکتوریهای خاصی در وبسرور (Apache) قرار دارد و به شما امکان میدهد تنظیمات آن دایرکتوری و هر شاخه زیر آن را پیکربندی کنید. به جای تغییر پیکربندی سرور اصلی آپاچی (که معمولا به دسترسی سطح بالاتر نیاز دارد)، میتوانید از فایلهای htaccess. برای ایجاد تغییرات در هر دایرکتوری استفاده کنید.
این تغییرات میتواند شامل مواردی مانند راهاندازی ریدایرکت، محافظت با رمز عبور (password-protecting)، کنترل حافظه کش، و مهمتر از همه، محدود کردن دسترسی به فایلها و پوشهها باشد.
برخلاف تغییرات پیکربندی اصلی، زیبایی htaccess. این است که تغییرات آن بلافاصله بدون نیاز به ریبوت سرور اعمال میشود.
چرا دسترسی به فایلهای وردپرس را محدود کنیم؟
وردپرس، مانند هر برنامه وب پیچیده، ساختار دایرکتوری خاصی دارد. برخی از فایلها برای دسترسی عمومی (مانند فایلها، تصاویر، CSS و جاوا اسکریپت تم) طراحی شدهاند، در حالی که برخی دیگر برای عملکرد وردپرس بسیار مهم هستند و هرگز نباید مستقیم توسط عموم قابل دسترسی باشند. این فایل های حساس عبارتند از:
- فایل wp-config.php: این فایل جواهر تاج و شامل اعتبار دیتابیس (نام کاربری، رمز عبور، نام پایگاه داده)، کلیدهای مخفی مورد استفاده برای امنیت و سایر تنظیمات پیکربندی حیاتی است. اگر یک هکر به این فایل دست پیدا کند، می تواند کل سایت را به خطر بیندازد.
- دایرکتوری wp-includes/: این دایرکتوری شامل فایلها و کتابخانههای اصلی وردپرس است. دسترسی مستقیم به این فایلها میتواند آسیبپذیریها را آشکار کند یا به مهاجمان اجازه دهد کد مخرب را تزریق کنند.
- فایل htaccess: به طور قطع نمیخواهید کسی قوانین امنیتی شما را تغییر دهد!
- سایر فایلهای حساس و غیر قابل خواندن از طریق وب، مانند بکاپگیری، لاگها یا readme.html
اجازه دسترسی مستقیم به این فایلها مانند این است که در ورودی خانه را باز بگذارید و تابلویی روی آن قرار دهید که چیزهای ارزشمندی در خانه است!
ما دسترسی را محدود می کنیم تا از عملکرد اصلی سایت وردپرس و داده های حساس در برابر سوء استفاده محافظت کنیم.
اهمیت ایمن سازی فایلهای وردپرس
ایمن سازی این فایلها به چند دلیل مهم است:
- جلوگیری از به خطر افتادن دیتابیس: همانطور که گفته شد، wp-config.php اعتبار پایگاه داده را نگه میدارد. افشای این موارد به این معنی است که مهاجمان می توانند کنترل کامل پایگاه داده شما را به دست آورده و به آنها اجازه می دهد داده ها را بدزدند، محتوای مخرب تزریق کنند یا حتی همه چیز را حذف کنند.
- مسدود کردن تزریق کد: دسترسی مستقیم به فایلهای اصلی (wp-includes/) میتواند به مهاجمان اجازه دهد کدهای مخرب PHP را تزریق کنند. سرور می تواند این کد را اجرا و به طور بالقوه درهای پشتی ایجاد کند، دادههای کاربر را بدزدد یا وب سایت را خراب کند.
- جلوگیری از افشای اطلاعات: حتی اگر فایلی حاوی کد مستقیم قابل بهره برداری نباشد، ممکن است اطلاعاتی در مورد نصب وردپرس ، مانند شماره نسخه یا افزونه هایی که استفاده میکنید، نشان دهد. این اطلاعات می تواند به مهاجمان کمک کند تا آسیب پذیری های شناخته شده را شناسایی کنند.
- حفظ یکپارچگی وب سایت: با محدود کردن دسترسی، اطمینان حاصل می کنید که فقط خود وردپرس، از طریق مکانیسم های مورد نظر خود، می تواند با این فایل های حیاتی تعامل داشته باشد. این به جلوگیری از تغییرات تصادفی یا مخربی که می تواند وب سایت را خراب نماید، کمک می کند.
هاست وردپرس با وب سرور محبوب لایت اسپید و کش لایت اسپید باعث میشود تا سرعت لود فوق العادهای را تجربه کنید.
با خرید هاست وردپرس کانفیگ حرفهای و نظارت بر سرور به صورت پیوسته توسط تیم فنی پارسدِو انجام خواهد شد.
آموزش محدود کردن دسترسی به فایل های وردپرس با استفاده از htaccess:
مرحله 1: دسترسی به فایل .htaccess
به کنترل پنل دایرکت ادمین یا سی پنل هاست خود وارد شده و روی File Manager کلیک نمائید. در محل نصب وردپرس میتوانید فایل htaccess. را مشاهده کنید.
فایل htaccess باید در میان فایلهای اصلی وردپرس شما قابل مشاهده باشد. اگر نمیتوانید آن را ببینید نگران نباشید، برخی از نصبهای وردپرس بهطور پیشفرض این فیال را ندارند، یا ممکن است hidden باشد.
اگر نیاز به ایجاد یک فایل htaccess جدید دارید، به سادگی در File Manager به کمک عبارت Create New File آن را ایجاد کنید. به یاد داشته باشید که نام فایل باید با یک نقطه و به دنبال آن htaccess شروع شود. این قرارداد نامگذاری آن را به عنوان یک فایل پیکربندی خاص شناسایی می کند که آپاچی هنگام رسیدگی به درخواست های سایت شما را شناسایی و پردازش می کند.
توجه: فایل هایی که با نقطه شروع می شوند اغلب به طور پیش فرض در بسیاری از فایل سیستمها پنهان هستند.
مرحله 2: اضافه کردن قوانین برای محدود کردن دسترسی
همیشه قبل از انجام هر گونه تغییر، یک نسخه پشتیبان از فایل htaccess. خود ایجاد کنید. این مرحله مهم را نمی توان اغراق کرد – حتی یک خطای نحوی جزئی می تواند کل وب سایت شما را غیرقابل دسترسی کند. سرور برای هر درخواست صفحه این فایل را می خواند، بنابراین هر اشتباهی بلافاصله روی سایت شما تاثیر می گذارد.
برای ایجاد یک نسخه بکاپ از این فایل:
روی فایل htaccess. راست کلیک کنید
برای ذخیره یک کپی لوکال از آن را دانلود کنید، یا برای ایجاد فایل .htaccess.bak آن را copy یا rename نمائید.
در ادامه چندین سناریو امنیتی متداول و قوانین htaccess. مربوطه که می توانید پیاده سازی کنید آورده شده است. هر کدام آسیب پذیری های خاصی را در نصب استاندارد وردپرس برطرف می کند:
دسترسی به wp-config.php را محدود کنید
همانطور که در بالا توضیح داده شد، باید فایل wp-config.php خود را از دسترسی غیرمجاز محافظت کنید. این دستورالعمل دسترسی به فایل wp-config.php را از همه منابع ممنوع می کند.
دسترسی به ناحیه wp-admin را با آدرس IP محدود کنید
اگر بخواهید دسترسی به بخش مدیریت وردپرس خود را فقط به آدرس های IP خاص (مانند دفتر یا شبکه خانگی خود) محدود کنید، مفید است. آدرس IP واقعی خود را جایگزین YOUR_IP_ADDRESS کنید. میتوانید چندین Allow از خطوط برای IPهای اضافی اضافه کنید.
در قطعه کد بالا، دستورالعمل Location /wp-admin قوانین را به طور خاص در پوشه /wp-admin اعمال می کند.
توجه: سینتکس این دستورات ممکن است بسته به نسخه آپاچی که استفاده می کنید کمی متفاوت باشد. برای آخرین سینتکس به داکیومنت رسمی مراجعه کنید.
از فایلهای رسانه ای در برابر دسترسی مستقیم محافظت کنید (اما اجازه دهید در سایت نمایش داده شوند)
این امر از دسترسی مستقیم به فایلهای موجود در دایرکتوری wp-content/uploads (جایی که تصاویر و سایر رسانهها ذخیره میشوند) جلوگیری میکند، مگر اینکه درخواست از وبسایت خودتان باشد. این به جلوگیری از hotlinking کمک می کند (سایت های دیگر که مستقیم از تصاویر شما استفاده میکنند و پهنای باند شما را مصرف می کنند). parsdev.example.com را با دامنه واقعی خود جایگزین کنید.
XML-RPC را برای جلوگیری از حملات DDoS مسدود کنید
XML-RPC یک ویژگی وردپرس است که امکان دسترسی از راه دور به سایت را فراهم می کند. می تواند هدفی برای حملات DDoS باشد. اگر به آن نیاز ندارید، بهتر است آن را مسدود کنید.
برای امنیت بیشتر، دسترسی به انواع فایل های حساس را محدود کنید
بسیاری از خزندهها و رباتهای خودکار سعی میکنند به فایلها مستقیم از سرور دسترسی پیدا کنند، حتی اگر ایندکس نشده باشند. بنابراین، همیشه باید دسترسی مستقیم به انواع مختلف فایلهای حساس را مسدود کنید.
از دستور زیر برای مسدود کردن فایل های حساسی که هرگز از طریق وب قابل دسترسی نیستند استفاده کنید:
کنترل دسترسی به فایل های پیکربندی توسط IP های خاص
مشابه محدود کردن دسترسی به wp-admin، میتوانید دسترسی به سایر فایلهای پیکربندی (یا هر فایل/دایرکتوری) را به آدرسهای IP خاص محدود کنید. این مثال نحوه محافظت از یک فایل فرضی config.ini را نشان می دهد:
غیرفعال کردن Directory Browsing
ساختار فایل وردپرس یک نقشه گنج برای مهاجمان است. وقتی directory listing فعال است، هرکسی که بدون فایل ایندکس به پوشه ای می رود، می تواند فهرست کاملی از محتویات آن را ببیند. این امر معماری، نسخههای افزونه، پوستهها و آسیبپذیریهای احتمالی سایت شما را نشان میدهد – همه اطلاعات ارزشمندی برای عوامل مخرب.
رباتهای اسکن خودکار دائم وبسایتها را برای یافتن این دایرکتوریهای باز بررسی میکنند و به دنبال مسیرهایی برای بهرهبرداری میگردند. هنگامی که مهاجمان دایرکتوری های محافظت نشده را پیدا کردند، می توانند اجزای قدیمی را شناسایی کنند، فایل های پیکربندی را پیدا کنند یا سایر نقاط ضعف امنیتی را برای هدف قرار دهند.
با غیرفعال کردن directory browsing، این درخواستها را مجبور میکنید به جای نمایش محتوای پوشه، خطای 403 Forbidden را برگردانند. این تغییر ساده با پنهان نگه داشتن ساختار داخلی سایت شما از چشمان کنجکاو، وضعیت امنیتی شما را به میزان قابل توجهی تقویت می کند.
برای محافظت از تنظیمات پیکربندی، دسترسی به فایل .htaccess را محدود کنید
فایل htaccess شما فقط یک ابزار امنیتی نیست، بلکه یک مسئولیت امنیتی بالقوه است. اگر مهاجمان بتوانند به این فایل دسترسی داشته باشند، اطلاعات ارزشمندی در مورد اقدامات حفاظتی خاص شما به دست میآورند و به آنها اجازه میدهد تا حملات دقیقا هدفمندی را انجام دهند که دفاع شما را دور میزند.
htaccess خود را به عنوان طرح اولیه سیستم امنیتی خود در نظر بگیرید. وقتی در معرض دید قرار میگیرد، دقیقا نشان میدهد که از کدام فایلها محافظت میکنید، کدام دایرکتوریها را محدود کردهاید، و چه اقدامات متقابل خاصی را اجرا کردهاید. با استفاده از این اطلاعات، مهاجمان می توانند به طور روشمند نقاط ضعف یا استثناء را در مجموعه قوانین شما آزمایش کنند.
برای جلوگیری از این خطر، باید صراحتا دسترسی به خود فایل .htaccess را مسدود کنید. این یک حلقه امنیتی ایجاد می کند که در آن قوانینی که از سایت شما محافظت می کنند نیز از کشف شدن محافظت می کنند. با اجرای این حفاظت، اطمینان حاصل میکنید که استراتژیهای دفاعی خود محرمانه باقی میمانند و سطح حمله در دسترس مهاجمان احتمالی را به میزان قابل توجهی کاهش میدهند.
مرحله 4: آزمایش پیکربندی
پس از ذخیره تغییرات خود در htaccess، ضروری است که آنها را به طور کامل آزمایش کنید:
1. حافظه کش مرورگر خود را پاک کنید: ممکن است مرورگر شما نسخه های قدیمی فایلها یا پاسخ ها را در حافظه کش نگه دارد. کش خود را پاک کنید تا مطمئن شوید که اثرات تغییرات خود را می بینید.
2. دسترسی به فایلهای محدود شده را امتحان کنید: سعی کنید مستقیم به فایلهایی که محدود کردهاید (مانند parsdev.example.com/wp-config.php) در مرورگر خود دسترسی پیدا کنید. شما باید یک خطای 403 Forbidden دریافت کنید.
3. بررسی عملکرد وب سایت: وب سایت خود را به طور کامل مرور کنید تا مطمئن شوید که همه چیز همچنان همانطور که انتظار می رود کار می کند. به مناطقی که ممکن است تحت تhثیر تغییرات شما قرار گیرند (به عنوان مثال، قسمت مدیریت و نمایش تصویر) به خوبی توجه کنید.
4. بررسی خطاها: اگر چیزی خراب است، کنسول توسعه دهنده مرورگر خود را (که معمولا با فشار دادن F12 قابل دسترسی است) برای پیام های خطا بررسی کنید. این پیام ها می توانند سرنخهایی در مورد آنچه ممکن است اشتباه باشد ارائه دهند.
5. در صورت لزوم برگردانید: اگر با مشکل مواجه شدید، فوری فایل htaccess. خود را از بکاپ که در مرحله 2 ایجاد کردهاید بازیابی کنید.
جمع بندی
در سراسر این راهنما، نقش فایل htaccess را در ایمن سازی نصب وردپرس، با تمرکز بر محدود کردن دسترسی به فایل ها و دایرکتوری های حساس توضیح دادیم.