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

نشانه‌های هک

  • بازدیدکننده‌ها به سایت دیگری فرستاده می‌شوند (معمولاً فقط از موبایل یا از گوگل).
  • در نتایج گوگل، عنوان‌ها و متن‌های نامربوط به سایت شما نمایش داده می‌شود.
  • مرورگر هشدار «سایت فریبنده» می‌دهد.
  • کاربر مدیری در وردپرس هست که شما نساخته‌اید.
  • فایل‌های PHP ناآشنا در پوشه‌ی uploads یا ریشه‌ی سایت.
  • هاست به‌خاطر ارسال اسپم هشدار داده است.

قدم ۱: آرام باشید و چیزی را پاک نکنید

پاک کردن شتاب‌زده، ردِ راه نفوذ را هم پاک می‌کند. اول یک بکاپ از وضعیت فعلی (همان آلوده) بگیرید و جدا نگه دارید؛ ممکن است برای پیدا کردن محتوای ازدست‌رفته یا راه نفوذ لازم شود.

قدم ۲: سایت را موقت ببندید

تا بازدیدکننده‌ها آسیب نبینند. ساده‌ترین راه، رمز گذاشتن روی کل سایت با Directory Privacy در سی‌پنل است؛ خودتان با رمز وارد می‌شوید و بقیه نه.

قدم ۳: همه‌ی رمزها را عوض کنید

رمز کجا
سی‌پنل ناحیه کاربری، صفحه‌ی سرویس
همه‌ی مدیران وردپرس پیشخوان ← کاربران
کاربر دیتابیس MySQL Databases؛ بعد در wp-config.php هم عوض کنید
اکانت‌های FTP و ایمیل سی‌پنل
حساب ناحیه کاربری پروفایل

کلیدهای امنیتی وردپرس (SALT) را هم در wp-config.php با مقدارهای تازه جایگزین کنید تا همه‌ی نشست‌های باز، از جمله نشست مهاجم، باطل شود.

صفحه کاربران وردپرس
صفحه‌ی کاربران وردپرس: مدیرانی را که نمی‌شناسید حذف کنید

قدم ۴: اسکن کنید

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

بخش Imunify360 در سی‌پنل
Imunify360 در سی‌پنل: فهرست فایل‌های آلوده و تاریخ شناسایی

توضیح بیشتر در امنیت هاست با Imunify360.

قدم ۵: بکاپ سالم را برگردانید

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

بعد از بازگردانی، مطالبی که بعد از آن تاریخ منتشر کرده‌اید را از بکاپِ آلوده (قدم ۱) دوباره وارد کنید؛ فقط متن و تصویر، نه فایل PHP.

قدم ۶: اگر بکاپ سالم ندارید

  1. پوشه‌های wp-admin و wp-includes را حذف و از بسته‌ی تازه‌ی وردپرس جایگزین کنید.
  2. قالب و افزونه‌ها را حذف و از منبع اصلی دوباره نصب کنید؛ نسخه‌ی روی هاست را نگه ندارید.
  3. در wp-content/uploads هر فایل با پسوند php را حذف کنید؛ این پوشه فقط جای تصویر و سند است.
  4. فایل‌های wp-config.php و htaccess. را خط‌به‌خط نگاه کنید و کد ناآشنا را بردارید.
  5. کرون‌جاب‌های سی‌پنل را ببینید؛ مهاجم‌ها گاهی کرونی می‌گذارند که آلودگی را برمی‌گرداند.

قدم ۷: راه نفوذ را ببندید

بیشتر نفوذها از یکی از این سه راه است:

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

فهرست کامل در چک‌لیست امنیت وردپرس.

قدم ۸: به گوگل خبر بدهید

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

اگر هاست فعلی کمکی نمی‌کند

می‌توانید سایت را به رایکت منتقل کنید؛ درخواست انتقال رایگان بدهید و در توضیحات بنویسید سایت آلوده بوده تا در انتقال در نظر گرفته شود.

سوال‌های رایج

فقط فایل آلوده را پاک کنم کافی است؟

نه. مهاجم معمولاً چند درِ پشتی می‌گذارد. بدون بستن راه نفوذ و تعویض رمزها، برمی‌گردد.

رتبه‌ی گوگل برمی‌گردد؟

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

چطور بفهمم بکاپم آلوده نیست؟

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