امنیت وردپرس را چگونه به بالاترین سطح برسانیم ؟

اطلاعیه خودکار این مقاله ؛ این پست در ۱۰ سال پیش نوشته و منتشر شده است و اکنون شاید قوانین و ابزار ها تغییر پیدا کرده باشد. اگر میدانید این نوشته هنوز به کارتان می آید ،به خواندن ادامه دهید.

ایمن‌سازی وردپرس

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

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

امنیت چیست؟

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

ویژگی‌های یک هاست قابل اطمینان عبارتند از:

  • مشتاقانه درمورد انتظارات و نگرانی‌های امنیتی شما وهمچنین ویژگی‌ها و پروسه‌های امنیتی که هاستینگ در اختیار شما خواهند گذاشت، با شما صحبت می‌کند.
  • آخرین و با ثبات‌ترین نسخه‌های نرم‌افزار سرور را در اختیارتان می‌گذارد.
  • روش‌های قابل اعتماد بازیابی اطلاعات و پشتیبان‌گیری (بک آپ) را برای شما فراهم می‌کند.

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

پوسته‌های امنیتی

در تصمیم گیری در مورد امنیت جنبه‌های مختلف  سیستم خود، چند نکته‌ی کلی را در نظر داشته باشید:

محدود کردن دسترسی

کاهش نقاط ورود احتمالی برای افرادی که  مقاصد سوء دارند.

مهار

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

آماده‌ سازی و دانش

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

منابع مورد اعتماد

از منابع غیر قابل اعتماد، پوسته (theme) و افزونه (plugin) نگیرید. خود را به مجموعه‌ی موجود در WordPress.org و یا کمپانی‌های قابل اعتماد محدود کنید. گرفتن پوسته و افزونه از خارج از وردپرس ممکن است منجر به پدید آمدن مشکلاتی شود.

آسیب پذیری‌های کامپیوتر شما

مطمئن شوید که کامپیوتر‌های مورد استفاده‌ی شما عاری از هر گونه جاسوس افزار، بدافزار و ویروس باشند.

همیشه سیستم‌عامل و نرم افزار‌های خود، بخصوص مرورگر اینترنتی، را به‌روز نگه دارید تا سیستم خود را از نقص‌های امنیتی مصون نگه دارید. اگر قصد بازدید از سایت‌های غیر قابل اطمینان و مشکوک را دارید، بهتر است از ابزاری مانند no-script استفاده و یا جاوا اسکریپت، فلش و جاوا را  در مرورگر خود غیر فعال کنید.

آسیب‌پذیری‌های وردپرس

مانند دیگر بسته‌های نرم افزاری مدرن، وردپرس بطور مرتب برای آمادگی در مقابل مشکلات امنیتی احتمالی آپیدت می‌شود. بحث بهبود امنیت نرم افزاری یکی از دغدغه‌های همیشگی است و برای دستیابی به آن همیشه از آخرین نسخه‌ی وردپرس استفاده کنید. نسخه‌های قدیمی وردپرس از نظر امنیتی آپدیت نمی‌شوند.

به‌روز رسانی وردپرس

آخرین نسخه‌ی وردپرس را همواره می‌توانید از وب‌سایت اصلی وردپرس به آدرس http://wordpress.org دریافت کنید. آپیدیت‌های رسمی هیچ‌گاه در وب‌سایت های دیگر قابل دسترسی نیستند. بنابراین هرگز وردپرس را از وب‌سایتی به غیر از  ‌ http://wordpress.org دانلود نکنید.

از نسخه‌ی ۳٫۷ به بعد، وردپرس گزینه‌ی آپدیت خودکار اضافه کرده است. با استفاده از این ویژگی می‌توانید براحتی به‌روز بمانید. به علاوه می‌توانید از طریق Dashboard وردپرس از آپدیت‌ها با خبر شوید.

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

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

گزارش مشکلات امنیتی

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

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

آسیب پذیری‌های سرور

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

اگر شما در سروری مشترک ( سروری که وب‌سایت های دیگری را نیز در کنار وبسایت شما هاست می‌کند) قرار دارید و وبسایتی در سرور شما دچار مشکلات امنیتی شد، به احتمال بسیار بالا، وب‌سایت شما نیز در معرض خطر قرار دارد حتی اگر تمامی توصیه‌های این مطلب را انجام داده باشید. به همین خاطر بهتر است از سرور خود در مورد اقدامات پیشگیرانه‌ی امنیتی که انجام می‌دهند، اطلاعاتی کسب کنید.

آسیب پذیری‌های شبکه

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

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

پسوورد

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

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

یکی از ویژگی‌های وردپرس، دارا بودن نشانگر میزان قوی بودن یک پسوورد است. زمانی که قصد تغییر پسوورد خود را داشته باشید، از طریق این نشانگر می‌توانید بدانید که پسوورد انتخابی شما تا چه حد قوی است.

نکاتی که در انتخاب پسوورد باید از آنها اجتناب کرد:

  • هرگونه استفاده‌ای از نام اصلی، یوزرنیم، نام شرکت و یا نام وبسایت
  • لغتی از لغتنامه‌ای به هر زبان
  • پسوورد کوتاه
  • یک پسوورد تماماً عددی یا تماماً حروفی (ترکیبی از این دو بهترین گزینه است)

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

علاوه بر داشتن پسووردی قوی، بهتر است احراز هویت دو مرحله‌ای (two-step authentication) را نیز به عنوان اقدام احتیاطی اضافه، فعال کنید.

FTP

برای اتصال به سرور، از رمز گزاری SFTP استفاده کنید. اگر نمی‌دانید که هاست اینترنتی شما این امکان را فراهم کرده یا نه، می‌توانید از آنها بپرسید.

استفاده از SFTP درست مانند استفاده از FTP است با این تفاوت که در SFTP تمامی اطلاعات و پسوورد شما در انتقال بین کامپیوتر . وبسایت شما، رمزگذاری می‌شوند. این بدین معنی است که پسوورد شما هیچگاه به همان شکل اصلی فرستاده نمی‌شود و در نتیجه هکرها نمی‌توانند از پسوورد شما استفاده کنند.

اجازه دسترسی فایل

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

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

یکی از طرح‌های سطح دسترسی را در اینجا ببینید:

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

/

دیرکتوری روت وردپرس: تمامی فایل‌ها بایستی فقط توسط اکانت کاربری قابل رایت باشند.

/wp-admin/

منطقه‌ی مدیریتی وردپرس: تمامی فایل‌ها فقط توسط اکانت کاربری شما قابل رایت باشند.

/wp-includes/

بخش عمده‌ی منطق اپلیکیشن وردپرس: تمامی فایل‌ها فقط توسط اکانت کاربری شما قابل رایت باشند.

/wp-content/

محتوای عرضه شده توسط کاربر: قابل رایت توسط اکانت کاربری شما و پروسه‌ی سرور وب.

در /wp-content/ می‌توانید گزینه‌های زیر را بیابید:

/wp-content/themes/

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

/wp-content/plugins/

فایل‌های افزونه: تمامی فایل‌ها باید فقط قابل رایت با اکانت کاربری شما باشند.

دیرکتوری‌های دیگر که ممکن است با /wp-content/ موجود باشند، باید توسط پوسته و یا افزونه‌ای که به آنها نیاز دارند، ثبت شوند. سطح دسترسی ها در این موارد متغیر هستند.

تغییر دادن سطح دسترسی فایل:

اگر دسترسی شل(shell) به سرور دارید، می‌توانید سطح دسترسی فایل را توسط دستور زیر تغییر دهید:

برای دیرکتوری‌ها:

find /path/to/your/wordpress/install/ -type d -exec chmod 755 {} \;

برای فایل‌ها:

find /path/to/your/wordpress/install/ -type f -exec chmod 644 {} \;

به‌روز رسانی خودکار:

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

امنیت پایگاه داده (دیتا بیس):

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

اگر خود شما MySQL را مدیریت می‌کنید، اطمینان حاصل کنید که در مورد MySQL اطلاعات کافی دارید و ویژگی‌های غیرضروری آن (مانند پذیرش اتصالات TCP از راه دور) غیر فعال هستند.

محدود کردن اختیارات کاربر دیتابیس

برای انجام کارهای معمول در وردپرس، مانند گذاشتن مطالب در بلاگ، آپلود کردن فایل‌، گذاشتن کامنت، ایجاد کردن اکانت کاربری جدید و نصب افزونه‌های وردپرس، کاربر MySQL فقط به اختیارات خواندن و رایت کردن داده در MySQL مانند Select، Insert، Update و Delete نیاز دارد.

به همین دلیل، بهتر است اختیارات مدیریتی دیگر مانند Drop، Alter و Grant از کاربر گرفته شوند. با گرفتن این اختیارات، در واقع به استراتژی مهار و در نتیجه امنیت بیشتر کمک می‌کنید.

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

احتیاط: اعمال کردن آپدیت بدون داشتن این اختیارات ممکن است در زمان تغییر طرح، باعث ایجاد مشکلاتی شود. اگر بنا به دلایل امنیتی نیاز به انجام آپدیت دارید، حتماً یک بک آپ قابل اعتماد از دیتابیس‌ داشته باشید تا در مواقع نیاز بتوانید اطلاعات خود را از طریق آن براحتی برگردانید. در صورت ناموفق بودن آپگرید دیتابیس ، می‌توانید این مشکل را براحتی حل کنید. کافی‌ست دیتابیس را به یک نسخه‌ی قدیمی‌تر برگردانید، اختیارات مورد نیاز را در اختیار آن بگذارید و اجازه دهید تا خود وردپرس آپدیت را دوباره انجام دهد. بازگرداندن دیتابیس به یک نسخه‌ی قدیمی باعث می‌شود که بخش مدیریتی وردپرس متوجه وجود نسخه‌ی قدیمی بشود و سپس به شما اجازه دهد که دستورهای SQL مورد نیاز را بر روی آن انجام دهید. اکثر آپگرید‌های وردپرس تغییری در طرح انجام نمی‌دهند. فقط برخی از آپگریدهای اساسی (۳٫۷ تا ۳٫۸ به عنوان مثال) این تغییرات را اعمال می‌کنند و آپگرید‌های کوچک (۳٫۸ تا ۳٫۸٫۱) معمولاً این کار را انجام نمی‌دهند. اما در هر صورت، داشتن یک بک آپ مطمئن همیشه اقدام درستی‌ است.

ایمن کردن wp-admin

اضافه کردن پسورد از جانب سرور (مانند BasicAuth) به /wp-admin/ یک لایه‌ی محافظتی دوم در اطراف محیط مدیریتی بلاگ، صفحه‌ی لاگین و همچنین فایل‌های شما ایجاد می‌کند. این لایه باعث می‌شود که هکر بجای رفتن به سراغ فایل‌های ادمین شما، به این لایه‌ی دوم حمله کند. اکثر حملات به وردپرس از طریق نرم‌افزارهای خرابکار و بطور خودکار انجام می‌شوند.

اینکه فقط wp-admin/ را ایمن کنید ممکن است برخی قابلیت‌های وردپرس، مانند هندلر AJAX در wp-adin/admin-ajax.php را از کار بیاندازد.

معمول‌ترین حملات به بلاگ‌های وردپرس بطور معمول در دو گروه قرار می‌گیرند:

  1. فرستادن درخواست‌های HTTP که به طور بخصوص برای استفاده از آسیب پذیری‌های بخصوصی ساخته شده‌اند.
  2. تلاش برای دسترسی پیدا کردن به بلاگ شما با استفاده از روش حملات جستجوی فراگیر که قبلا به آن پرداختیم.

هدف نهایی اعمال این لایه‌ی دوم پسوورد، خواستن یک اتصال رمزگزای شده‌ی HTTPS SSL برای مدیریت است به این منظور که تمام ارتباطات و اطلاعات حساس رمزگزاری شوند.

ایمن سازی wp-includes

لایه‌ی دومی از امنیت را می‌توان زمانی اضافه کرد که قرار نیست هیچ کاربری به اسکریپت‌ها دسترسی داشته باشد. یک روش انجام این کار، بلاک کردن آن اسکریپت‌ها با استفاده از mod-rewrite در .htaccess است.

توجه: برای اطمینان از اینکه کد زیر توسط وردپرس بازنویسی نشده‌اند، آنرا خارج از تگ‌های #BEGIN WordPress و # END WordPress در فایل .htaccess قرار دهید. وردپرس می‌تواند هر چیزی را که بین این دو تگ باشد بازنویسی کند.

# Block the include-only files.

RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]



# BEGIN WordPress

توجه کنید که این روش در Multisite جواب نمی‌دهد به این دلیل که RewriteRule^wp-includes/[^/]+\.php$-[F,L] از ایجاد کردن ایمج توسط ms-files.php جلوگیری می‌کند. حذف کردن این خط باعث می‌شود که کد مورد نظر کار کند اما از نظر امنیت در سطح پایین‌تری قرار دارد.

ایمن سازی wp-config.php

می‌توانید فایل wp-config.php را به دیرکتوری بالای نصب وردپرس انتقال دهید. این به این معنی‌ است که در مورد سایتی که در روت فضای وب شما نصب شده باشد، می‌توانید wp-config.php را خارج از فولدر web-root ذخیره کنید.

توجه: افراد بسیاری بر این باورند که انتقال wp-config.php فواید امنیتی بسیار کمی دارد و اگر بدرستی انجام نشود، حتی می‌تواند باعث ایجاد نقص‌های امنیتی جدی نیز شود.

wp-config.php را می‌توانید در در یک سطح دیرکتوری بالای نصب وردپرس (جایی که wp-includes قرار دارد) ذخیره کنید. به علاوه، اطمینان حاصل کنید که فقط شما (و سرور وب) می‌تواند این فایل را بخواند (این معمولاً دسترسی ۴۰۰ یا ۴۴۰ است).

اگر از سروری با .htaccess استفاده می‌کنید، می‌توانید این کد را در فایل مربوطه (در بالاترین قسمت) قرار دهید تا از دسترسی افرادی که آنرا جستجو می‌کنند، جلوگیری کنید.

order allow,deny
deny from all

ویرایش فایل را غیرفعال کنید

داشبورد وردپرس بطور پیش فرض به مدیران اجازه‌ی ویرایش فایل‌های PHP مانند فایل‌های افزونه و پوسته را می‌دهد. این معمولاً اولین ابزاری است که یک هکر، اگر موفق به لاگ این شود، از آن استفاده خواهد کرد زیرا اجازه‌ی اجرای کد را در اختیار او می‌گذارد.

با قرار دادن این خط در wp-config.php ، قابلیت‌های edit_themes، edit_plugins و edit_files را از تمام کاربران می‌گیرید:

define('DISALLOW_FILE_EDIT', true);

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

افزونه‌ها

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

فایروال

سرویس‌ها و افزونه‌های زیادی هستند که می‌توانند نقش فایروال را بر روی وب سایت شما ایفا کنند. روش کار برخی از آنان بدین صورت است که تغییراتی در فایل .htaccess شما اعمال می‌کند و دسترسی در سطح Apache را، قبل از اینکه توسط وردپرس پردازش شود، محدود می‌کند .  Better WP Security و All in One WP Security نمونه‌های خوبی از این افزونه‌ها هستند. بعضی از افزونه‌های فایروال مانند WordFence، در سطح وردپرس عمل می‌کنند و حملات را زمانی که وردپرس در حال لود شدن است اما هنوز کامل پردازش نشده، فیلتر می‌کنند.

در کنار افزونه‌ها، می‌توانید یک WAF (فایروال وب) بر روی سرور خود نصب کنید تا محتوی را قبل از پردازش شدن توسط وردپرس فیلتر کند. محبوب ترین WAF اوپن سورس، ModSecurity است.

به علاوه  فایروال می‌تواند بین کمپانی هاستینگ شما و اینترنت قرار گیرد و DNS رکوردهای شما را مجاب کند که از یک فایروال عبور کنند. با این کار، تمامی ترافیک قبل از رسیدن به سایت شما، از طریق فایروال فیلتر می‌شود. تعدادی کمپانی چنین سرویس‌هایی را ارائه می‌دهند مانند CloudFlare و Sucuri.

افزونه‌هایی که نیاز به اجازه‌ی رایت دارند

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

افزونه‌های اجرای کد

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

یکی از راه‌های اجتناب از چنین افزونه‌هایی، استفاده از custom page templates است. بخشی از امنیتی که این روش وعده می‌دهد، تنها زمانی اتفاق می‌افتد که امکان ویرایش فایل در داخل وردپرس را غیرفعال کنید.

امنیت از طریق گمنامی

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

  1. نام اکانت مدیریتی را تغییر دهید: در یک نصب جدید وردپرس، یک اکانت جدید مدیریتی بسازید و اکانت پیش فرض ادمین را حذف کنید. اگر تصمیم به نصب جدید ندارید، می‌توانید اکانت مدیریتی را از طریق دستوری مشابه به UPDATE wp_users SET user_login = ‘newuser’ WHERE user_login = ‘admin’; در بخش MySQL command-line client تغییر نام دهید.
  2. پیشوند table را تغییر دهید: بسیاری از حملات تزریقی SQL مختص به وردپرس، با این تصور عمل می‌کنند که این پیشوند در حالت پیش‌فرض، یعنی wp_, قرار دارد. تغییر این پیشوند، تعدادی از حملات تزریقی SQL را بلاک می‌کند.

بک آپ اطلاعات

از اطلاعات و دیتابیس‌های MySQL بطور مرتب بک آپ بردارید.

رمزگزاری بک آپ، نگهداری سوابق مستقل از هش‌های MD5 برای هر فایل بک آپ، و قرار دادن بک آپ بر روی واسطه‌های read-only باعث بالا بردن اطمینان شما از امنیت اطلاعات می‌شود.

یک استراتژی بک آپ مطمئن، می‌تواند شامل نگهداری snapshot هایی با فواصل زمانی معین از تمامی نصب وردپرس شما (شامل فایل‌های هسته و دیتابیس) در یک مکان امن شود. تصور کنید سایتی در روز اول ماه بدست هکر‌ها بیفتد و کسی از این مساله تا روز ۱۲ ماه خبردار نشود. از طریق این استراتژی، دارنده‌ی سایت بک آپ‌هایی دارد که می‌تواند از طریق آنها سایت را به حالت قبل از هک برگرداند و حتی می‌تواند از طریق بک آپ‌هایی که بعد از هک گرفته شده‌اند، مشخص کند که دقیقاً چه بخش‌هایی از سایت هدف حمله بوده‌اند.

ثبت لاگینگ

ثبت ورود و خروج‌های سایت، یکی از بدردبخور ترین روش‌ها برای داشتن اطلاعاتی در مورد وب‌سایت هستند. از این طریق می‌توانید بفهمید که چه زمانی، چه کاری توسط چه کسی در وب سایت انجام شده است. متاسفانه از طریق این لاگ‌ها نمی‌توانید بفهمید چه نام کاربری‌ای وارد سیستم شده اما می‌توانید IP و زمان آنرا بفهمید. به علاوه، می‌توانید هر کدام از حملات زیر را از طریق لاگ‌ها ببینید: حملات تزریق کد (XXS)، گنجاندن فایل از راه دور (RFI)، گنجاندن فایل محلی (LFI) و حملات پیمایش دیرکتوری. به علاوه، خواهید توانست حملات جستجوی فراگیر را نیز مشاهده کنید.

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

از لحاظ امنیتی، دو راه‌حل اوپن سورس اساسی هستند که بهتر است بر روی سرور خود داشته باشید.

OSSEC می‌تواند در هر توزیعی از NIX و همچنین در ویندوز اجرا شود و اگر درست تنظیم و کانفیگ شود، بسیار قدرتمند است. باید آنرا به طوری تنظیم کنید که تمامی access_logs و error_logs را ثبت کند. به علاوه، فراموش نکنید که تنظیمات را طوری انجام دهید که نویز نیز فیلتر شود.

نظارت

گاهی اوقات، ممکن است علی رغم اقدامات پیشگیرانه، باز هم هک شوید. به همین دلیل است که تشخیص و نظارت بر نفوذ از اهمیت زیادی برخوردار است. با استفاده از این روش می‌توانید با عکس العملی سریع، بفهمید که چه اتفاقی افتاده و سایت را به حالت اول برگردانید.

نظارت بر لاگ‌ها

اگر بر روی یک سرور شخصی هستید و دسترسی روت دارید، می‌توانید براحتی طوری تنظیمات انجام دهید که بتوانید ببینید چه اتفاقاتی در حال رخ دادن هستند. OSSEC این کار را تسهیل می‌کند.

نظارت بر ویرایش فایل‌ها

یک حمله‌ همیشه اثراتی از خود (فایل‌های تازه، فایل‌های ویرایش شده و غیره) بر جا می‌گذارد. اگر از OSSEC استفاده می‌کنید، فایل‌های شما را نظارت می‌کند و تغییراتی که در آنها ایجاد می‌شوند را اطلاع می‌دهد.

نظارت بر سرور از خارج

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

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

منبع : Hardening WordPress

برگردان : شراره یعقوبی

لینک کوتاه مطلب :

دیدگاهتان را ثبت کنید

آدرس ایمیل شما منتشر نخواهد شدعلامتدارها لازمند *

*