اگر در حال مطالعه ی این مقاله هستید ، فکر می کنم دچار مشکل بزرگی ( وب سایت وردپرسی شما هک شده ) شده اید که رفع کردن آن نیاز به دقت زیادی دارد و باید با خونسردی کامل نسبت به خوانده تمامی بخش های این مقاله ، وقت بگذارید . برای خواندن و اجرا کردن این راه کارها حدودا ۱ ساعت زمان صرف خواهید کرد ولی باید به طور کامل چک لیست های ارائه شده را مورد بررسی قرار دهید و از چشم پوشی از بخشی از آن جدا خود داری نمایید زیرا ممکن است مجددا دچار این اتفاق خیلی ناخوشایند شوید .
نکته : در این آموزش فرض بر این شده است که شما از کنترل پنل قدرتمند Cpanel استفاده میکنید ، بنابر این ممکن است با استفاده از این آموزش ، بخش هایی از آموزش با کنترل پنل های دیگر مغایرت داشته و همخوانی نداشته باشد ولی موارد مورد اشاره در تمامی کنترل پنل های معروف وجود دارند که بعضا با نام های متفاوت ، در آنها گنجانده شده است .
به شخصه موارد زیادی را دیدم که با توجه به شرایط مختلف ، مورد حمله قرار گرفته و باعث هک شدن وب سایت وردپرسی آنها شده است که عمده ی موارد به دلیل سهل انگاری مدیر وب سایت و خطای انسانی ( ممکن است بخاطر نوع طراحی سایت وردپرس ) ناشی از آن بوده که در زیر به بخشی از آنها اشاره میکنیم اما در مقاله ی دیگری در مورد اینگه چگونه از هک شدن سایت وردپرسی خود جلوگیری کنیم ، موارد بسیار مفید و مهمی را مطرح کردیم که هر مدیر سایت وردپرسی ای باید آنرا بداند و مورد استفاده قرار دهد .
۱ – رمز عبور نامطمئن و ساده :
وقتی از مدیر وب سایت پرسیده میشود که آیا رمز عبور مناسبی را برای ورود به پنل مدیریت انتخاب کرده اید یا خیر ؟ در جواب میگویند ، رمز ۱۲۳۴۵۶ را چطور میتوانستند حدس بزنند ؟
در جواب این سوال باید گفت که اشتباه دقیق در دست کم گرفتن هکر است ! یعنی یک هکر از هر ابزاری برای دسترسی به سایت شما استفاده میکند که از جمله میتوان به ابزاری با عنوان password cracker ( پسورد کرکر ) اشاره کرد که با این ابزار میتوان لیست میلیون ها رمز عبور را آماده و بر روی یک وب سایت مورد آزمون قرار داد که این عمل تا زمان رسیدن به رمز عبور صحیح تکرار میشود ، بنابر این ممکن است رمز عبور ساده ی شما به راحتی درون آن لیست باشد و به راحتی توسط ابزار مذکور مورد آزمون قرار گیرد .
۲ – نصب افزونه هایی از منابع نامعتبر
بر حسب تجربه ، حدودا ۸۰٪ سایت هایی که از طریق افزونه های وردپرسی هک شدند ، منابع دانلود متفرقه ای داشتند و از وب سایت وردپرس تهیه نشده بودند اما این به آن معنا نیست که تمام افزونه هایی که از طریق سایت وردپرس ارائه میشود ، مورد اطمینان بوده و میتوان کاملا به آنها تکیه کرد . مواردی دیده شده که بهترین و معروف ترین افزونه های وردپرسی نیز مورد حمله قرار گرفته و باعث ایجاد دسترسی غیر مجاز به سیستم شده و مهاجم از طریق آنها توانسته است اختلالی در سایت ایجاد نماید .
۳ – عدم استفاده از افزونه های امنیتی
در برخی موارد می توان هکر ( نفوذ گر ) را دچار سردرگمی کرد و یا اینکه راه نفوذ به سایت را سخت کرد تا به راحتی نتواند به مقاصد خود برسد و این خود یک گام پیش گیرانه است . مثلا فرض کنید هکری که قصد استفاده از ابزار تست رمز عبور ( password Cracker ) را دارد ، وقتی با کد یا سوال امنیتی ( captcha ) روبرو شود ، عرصه را بر کار خود دشوار دیده و به خودی خود مانع بزرگی بر سر راه می بیند و شاید ( اگر خوش شانس باشید ) ، آن هکر دست از سر سایت شما ( حداقل در این روش ) برمیدارد .
۴ – جدی نگرفتن نکته های امنیتی و تجربی دیگران
گاها مقاله هایی را میخوانیم و یا از دیگران می شنویم که میگویند :
به دلیل اینکه فلان کار را انجام دادم و یا اینکه فلان کار را انجام ندادم ، سایتم مورد حمله قرار گرفت و باعث بوجود آمدن اتفاق بدی شد که نهایتا ناچار به یافتن راهی برای حل مشکلات بزرگتری که ناشی از آن سهل انگاری بوده است ، خواهد شد .
اکثر ما مدیران و وبمستران که مسئول نگهداری از وب سایت خود و دیگران هستیم به این فکر میکنیم که این مشکلات برای ما نیست و هکرها به ما چکار دارند !؟؟؟
اگر از کسانی که وب سایتشان مورد حمله و هک قرار گرفته است بپرسید ، آنها نیز به همین جمله فکر میکردند و نهایتا ناچار به پرداخت هزینه زمانی ( وقت ) و مالی شده اند !
خب پس راهکار چیست ؟
پس از هک شدن سایت چه کاری باید انجام دهید ؟
۱ – خونسرد باشید و عجله نکنید
قطعا با عجله و اضطراب نمی توان کار درست را انجام داد و چون این مشکل ریشه و عوامل متعددی دارد ، باید تمامی موارد بصورت تک تک مورد بررسی قرار گیرد ، پس عجول نباشید و با دقت فرایند های زیر را ادامه دهید .
۲ – مسدود کردن سایت برای تمامی افراد جز خودتان و تغییر رمز عبور کنترل پنل
وب سایت هک شده باید از دسترس عموم خارج شده ( نگران نباشید ، این قطع شدن موقتی است ) تا بررسی ها بطور کامل انجام شود و پس از اطمینان از سلامت سایت ، مجددا آنرا در دسترس قرار خواهیم داد که این کار باعث می شود اگر هکر به سایت شما دسترسی غیر مجاز دارد ، نتواند به خرابکاری خود ادامه دهد و در واقع با این کار او را متوقف کرده اید ( حتی برای لحظاتی کوتاه ) .
برای انجام این کار ، ابتدا درون پوشه اصلی هاست خود یک فایل با نام index.html بسازید ( میتوانید برای بهتر شدن کار ، یک قالب هم برای این صفحه در نظر داشته باشید که به کاربرانتان دلیل قطع شدن و زمان باز شدن و فعال شدن سایت را اطلاع دهد ) و فایل های قبلی ( فایل هایی که مورد نفوذ قرار گرفته اند ) را درون یک پوشه با یک نام سخت ( برای اینکه قابل تشخیص توسط هکر نباشد ) قرار دهید تا سرِفرصت بتوانید فایل های آن را تست و بررسی نمایید .
بعد از اینکه پوشه ای برای فایل های وردپرسی خود انتخاب کردید ، برای اینکه وردپرس شما اجرا شود ، باید مسیر آنرا درون دیتابیس خود ثبت کنید ، برای این کار باید وارد پنل مدیریت هاست خود شده و وارد بخش phpMyAdmin شوید و در جدول wp_options به دنبال دو رکورد با نام های siteurl و home بگردید و اسم پوشه جدید را در آن وارد کنید ، یعنی اگر آدرس سایت شما https://webafra.com باشد و اسم پوشه جدید after_hack باشد ، مقدار این دو فیلد باید به شکل زیر باشد :
https://webafra.com/after_hack
۳ – تغییر رمز عبور سایت و رمز اتصال به دیتابیس
نمیتوان نقش هاست و هاستینگ را در بهبود امنیت سیستم بی تاثیر دانست ولی گاها هکر برای سایت هایی که روی یک سرور بارگذاری شده اند نیز دام میگذارد به این شکل که با خرید یک هاست از هاستینگی که مورد هدف اوست ، اقدام به تست نفوذ به دیتابیس های سایت های دیگر می نماید و به دلیل اینکه سرور اجازه دسترسی به دیتابیس های دیگر را به وی می دهد ( در صورت داشتن نام کاربری و رمز عبور دیتابیس سایت مورد حمله ) و محدودیتی از این بابت وجود ندارد ، روش پسورد کرکر ( Password Cracker ) استفاده نموده تا به رمز عبور دیتابیس دسترسی پیدا کند و در نهایت به اطلاعاتی دست میابد که راه مستقیم نفوذ به سایت شما را فراهم می نماید .
برای تغییر رمز عبور دیتابیس به بخش MySQL® Databases مراجعه نمایید و ابتداعا نام کاربری قبلی که به دیتابیس اتصال داده شده است را حذف کنید و سپس فرایند ساخت کاربر و رمز عبور جدید را طی کنید ( این فرایند را در زمان نصب وردپرس طی کرده اید ) .
برای اینکه این مورد نیز پوشش داده شود ، بهتر است نام کاربری دیتابیس را تغییر داده و یک رمز عبور قوی برای آن انتخاب نمایید و این دو را نگهدارید تا در مراحل بعد از این نام کاربری و رمز عبور استفاده نماییم .
همچنین رمز عبور پنل مدیریت هاست خود را تغییر دهید تا در صورت هک شدن رمز عبور cpanel ، دسترسی هکر قطع شود ( دقت داشته باشید که از رمز عبور مطمئن و قوی استفاده کنید ) .
۴ – جایگزین کردن فایل های سیستمی وردپرس
پس از انتقال فایل ها و اعمال موارد بالا ، فایل wp-config.php را یافته و از آن یک نسخه ی پشتیبانی تهیه نموده و تمام فایلها و پوشه ها به جز پوشه wp-content را حذف کنید .
حالا لازم است جدیدترین نسخه وردپرس را از سایت رسمی وردپرس (wordpress.org) دانلود نمایید و تمامی فایل ها و پوشه ها به غیر از پوشه wp-content را آپلود و جایگزین نمایید ( دقت داشته باشید که پوشه wp-content به هیچ وجه نباید پاک شود چون تمامی فایل های مربوط به تصاویر و … که در بخش مدیا بارگذاری کرده اید ، در آن قرار دارد و حذف آن مشکلات زیادی بوجود می آورد ) .
۵ – تنظیم کردن فایل wp-config.php
پس از تغییر رمز عبور دیتابیس و جایگزینی فایل های وردپرس ، باید مجددا فایل wp-config.php را تنظیم نموده تا سیستم وردپرسی ما توانایی اجرا شدن داشته باشد تا بتوانیم ادامه فرایند بازگرداندن سایت هک شده را انجام دهیم ، پس لازم است در فایل های وردپرس ( فایل هایی که دانلود کرده و روی هاست آپلود کرده اید ) ، فایل wp-config-sample.php را پیدا کنید و مقادیر چند متغییر که در زیر به آنها اشاره میکنیم را وارد نمایید .
نکته : ممکن است همین فایل نیز مورد نفوذ قرار گرفته و کدهای مخربی در خود داشته باشد ، بنابراین از کپی و جایگزین کردن کل این فایل خودداری نمایید .
define('DB_NAME', 'نام دیتابیس');
/** MySQL database username */
define(‘DB_USER’, ‘نام کاربری جدید دیتابیس’);
/** MySQL database password */
define(‘DB_PASSWORD’, ‘رمز عبور جدید’);
/** MySQL hostname */
define(‘DB_HOST’, ‘localhost’);
کار از محکم کاری که عیب نمیکنه ، پس کد زیر رو برای جلوگیری از قرار داد کد مخرب از طریق پنل مدیریت درون سایت رو درون فایل wp-config.php قرار میدیم و با این کار باعث میشیم که قالب از طریق پنل مدیریت قابل ویرایش ( کد های برنامه نویسی ) نباشه :
define( 'DISALLOW_FILE_EDIT', true);
خب ، من که تا اینجا خیالم جمع شد اما خب ، من که گفته بودم باید با صبر و حوصله کار رو ادامه بدید ، پس هنوز کار تموم نشده !!! 😉
۶ – قراردادن رمز روی پوشه فایل های وردپرسی هک شده
یقینا باید جلوی دسترسی هکر به اطلاعات و هاست را طوری گرفت که دیگر قادر به استفاده از کد های مخرب ( Shell Access ) جاسازی شده در میان فایل ها را نداشته باشد تا بتوانیم ادامه فرایند پاکسازی را انجام دهیم . پس نیاز است ابتدا از پوشه فایل های وردپرسی با قرار دادن رمز عبور محافظت کنید .
در کنترل پنل محبوب سی پنل ( Cpanel ) بخشی با نام Directory Privacy وجود دارد که با استفاده از آن میتوانید بر روی پوشه ی مورد نظرتان رمز عبور قرار دهید ( به دلیل زمانبر بودن استفاده از Directoru Privacy ، آموزش استفاده از آن را به شما واگذاری میکنم ) .
۷ – جلوگیری از اجرا فایل های مخرب در مسیر wp-contents
یکی از بزرگترین و حساسترین پوشه هایی که مشکلات بسیاری را می توان ناشی از آن دانست ، پوشه wp-content است که در این پوشه فایل های مربوط به قالب ، فایل های مربوط به افزونه ها ، فایل های بارگذاری شده در بخش رسانه ها و بسیاری دیگر از انواع فایل را شامل می شود که نقطه اصلی شک در عامل نفوذ به سیستم را به خود اختصاص می دهد را خود جای داده است .
بنابر این باید این پوشه را به نحوی ایزوله ( محیطی که قابل اطمینان باشد تا از بیرون قابل دسترس نباشد ) کنیم که حتی در صورت وجود فایل مخرب ، بصورت مستقیم قابل دسترسی نباشد . برای این کار ، کدی کوتاهی را باید در فایل تنظمیات پیکربندی وبسرور سایتتان ( فایل سیستمی ( مخفی شده ) به نام .htaccess ) قرار دهید تا از اجرا شدن برخی فایل های مخرب جلوگیری شود و از آنجایی که وردپرس با زبان برنامه نویسی PHP استفاده میکند ، جلوگیری از اجرای این فایل ضروریست .
order deny,allow deny from all allow from all deny from all
۸ – بررسی ایمیل و تغییر رمز مدیران سیستم
بعد از انجام تغییرات ذکر شده در بالا ، باید از طریق مرورگر به آدرس پنل مدیریت سایت در آدرس جدید وارد شود و پس از ورود به پنل مدیریت از طریق آدرس زیر ، از منوها مدیریتی به بخش کاربران رفته و لیست کاربرانی که دسترسی مدیر کل دارند را بررسی نمایید که ایمیل آنها به درستی وارد شده باشد و در صورت صحیح بودن ایمیل ، رمز عبور آنها را تغییر داده و یک رمز عبور قوی برای آنها انتخاب نمایید تا در صورت هک شدن رمز عبور حساب کاربری توسط هکر ، هکر دیگر قادر به استفاده از آن نباشد .
۹ – خونه تکونی بخش افزونه ها و قالب ها
خیلی وقتها دیده میشه افزونه هایی روی سایت وردپرسی کاربر نصب شده که اصلا معلوم نیست به چه کاری میاد و خوده کاربر هم نمیدونه چرا این افزونه رو نصب کرده و دقیقا این افزونه داره چیکار میکنه !!!
اگر به این دسته از افزونه ها برخوردید که واقعا از کاربردش اطمینان ندارید ، بهتره اسمش رو سرچ کنید تا ببینید آیا واقعا برای سایت شما مفیده و مورد استفاده قرار گرفته یا نه ؟
جدا از اینکه افزونه های مشکلات امنیتی رو ممکنه با خودشون به وجود بیارن ، بعضا با اضافه کردن فایل های استایل دهی و جاوا اسکریپتی خودشون باعث کندی عملکرد سایت شما میشن که نمونه های زیادی دارن اما شما با حذف افزونه های بلا استفاده میتونید سایتتون رو بهبود ببخشید و یه جان دوباره ای به سرعت سایتتون بدید .
در ادامه باید قالب وب سایت وردپرسی خود را نیز مورد بررسی قرار دهید و اگر آن را از منبع نامعتبری تهیه نموده اید ، حتما فایل های آنرا حذف و از منابع معتبر و یا سایت های مطمئن دریافت نمایید .
خب ، آموزش به اتمام رسید و الان شما میدونید وقتی سایتتون هک شد چطوری پسش بگیرید و اجازه ندید آقای هکر ( از اونجایی که اکثر هکرها آقا هستن 😀 ) درون سایتتون به خرابکاریش ادامه بده !!!
مواردی که در این آموزش ذکر شده حاصل تجربه ی من در این زمینه بوده که ممکنه شما بتونید کاملترش کنید ، پس خوشحال میشم نظرتون در این مورد رو با من در میون بزارید .