پاکسازی بدافزار وردپرس

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

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

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

📌 نقشه راه سریع پاکسازی بدافزار وردپرس (در یک نگاه)

۱. قرنطینه و بک‌آپ
قطع دسترسی کاربران و گرفتن نسخه پشتیبان کامل از دیتابیس و فایل‌ها.
۲. اسکن و جایگزینی هسته
حذف پوشه‌های wp-admin و wp-includes و جایگزینی با فایل‌های خام وردپرس.
۳. پاکسازی پوسته و افزونه
حذف کامل افزونه‌های آلوده و نصب مجدد نسخه‌های رسمی از مخزن وردپرس.
۴. اسکن دیتابیس و تغییر کلیدها
حذف کدهای تزریق شده به جداول دیتابیس و ریست تمامی پسوردها و Saltها.

فهرست عناوین این مقاله

  • نشانی‌های رایج هک شدن و وجود بدافزار در وردپرس
  • پاسخ سریع: کارهای ضروری بلافاصله پس از مشاهده بدافزار
  • مراحل ۶ گانه و عملی پاکسازی بدافزار وردپرس
  • جدول مقایسه‌ای: پاکسازی دستی یا استفاده از افزونه‌های امنیتی؟
  • اقدامات ضروری پس از پاکسازی برای جلوگیری از هک مجدد
  • بخش عیب‌یابی سریع (Troubleshooting)
  • سوالات متداول کاربران (FAQ)

نشانی‌های رایج هک شدن و وجود بدافزار در وردپرس

نشانی‌های رایج هک شدن و وجود بدافزار در وردپرس

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

  • هشدار قرمز رنگ گوگل (Red Screen): نمایش پیغام “The site ahead contains harmful programs” در هنگام مرور سایت.
  • ریدایرکت‌های ناخواسته: هدایت کاربران موتورهای جستجو به سایت‌های نامربوط یا غیراخلاقی.
  • کاهش ناگهانی سرعت و کندی شدید هاست: مصرف غیرطبیعی CPU و RAM به دلیل کدهای اسپمر.
  • ایجاد کاربران مدیر جدید بدون اطلاع شما: وجود حساب‌های کاربری عجیب با سطح دسترسی مدیر کل.
  • افزوده شدن صفحات و لینک‌های ناشناخته: انتشار صدها برگه اسپم ژاپنی یا عربی در دیتابیس (حمله ژاپنی یا Japanese Keyword Hack).
  • از کار افتادن پیشخوان وردپرس: عدم امکان ورود به پنل مدیریت یا مواجهه با خطای ۵۰۰ و صفحه سفید.

⚡ پاسخ سریع: چگونه بدافزار وردپرس را در کمتر از ۱۰ دقیقه مهار کنیم؟

اگر سایت شما همین الان تحت حمله است: ۱) سایت را از طریق فایل htaccess. یا افزونه در حالت maintenance قرار دهید، ۲) یک پشتیبان کامل از دیتابیس دانلود کنید، ۳) فایل‌های اصلی وردپرس (پوشه‌های wp-admin و wp-includes) را از وب‌سایت رسمی وردپرس دانلود کرده و روی هاست جایگزین کنید، ۴) افزونه‌های نول شده را کلاً پاک کنید و ۵) کلمات عبور هاست، دیتابیس و مدیران را سریعاً تغییر دهید.

مراحل ۶ گانه و عملی پاکسازی بدافزار وردپرس

مراحل ۶ گانه و عملی پاکسازی بدافزار وردپرس

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

گام اول: پشتیبان‌گیری و ایزوله‌سازی سایت

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

گام دوم: پاکسازی فایل‌های هسته وردپرس (Core Files)

کدهای مخرب معمولاً خود را در فایل‌های اصلی وردپرس مانند index.php، wp-config.php یا فایل‌های داخل پوشه wp-includes پنهان می‌کنند. بهترین راه، ساخت مجدد این بخش‌هاست:

  1. به سایت رسمی WordPress.org بروید و آخرین نسخه وردپرس (هم‌نسخه با سایت خود) را دانلود کنید.
  2. فایل zip دانلود شده را استخراج کنید و پوشه wp-content و فایل wp-config-sample.php را از داخل آن حذف کنید.
  3. وارد کنترل‌پنل هاست (cPanel یا DirectAdmin) شوید.
  4. پوشه‌های wp-admin و wp-includes موجود روی هاست را کاملاً حذف کنید.
  5. فایل‌های تازه و سالم دانلود شده را روی هاست آپلود و جایگزین کنید.

گام سوم: بازرسی کدهای مخرب در فایل‌های حساس

فایل wp-config.php و فایل .htaccess را نباید کاملاً حذف کنید چون حاوی اطلاعات اتصال به دیتابیس و تنظیمات پیوندهای یکتا هستند. این دو فایل را ویرایش کرده و کدهای مشکوک را بررسی کنید. برای سهولت در فرآیند شناسایی کد مخرب وردپرس، به دنبال کدهایی بگردید که شامل توابعی مثل base64_decode، eval، gzinflate یا رشته‌های انکود شده طولانی و بی معنی هستند. نباید فرامواش کنید که کدهای استاندارد وردپرس خوانا و مشخص هستند.

گام چهارم: پاکسازی افزونه‌ها و قالب‌ها

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

  • وارد پوشه wp-content/plugins شوید. فهرستی از تمامی افزونه‌ها بگیرید، سپس کل این پوشه را حذف کرده و یک پوشه خالی با همین نام بسازید. افزونه‌ها را مجدداً از منابع معتبر دانلود و نصب کنید.
  • قالب فعال سایت را بررسی کنید. حتماً قبل از فعال‌سازی مجدد، یک چک امنیتی قالب وردپرس انجام داده و تمامی فایل‌های php موجود در پوشه پوسته را دقیق ارزیابی کنید.
  • پوشه uploads (تصاویر) را باز کنید. هیچ فایل با پسوند .php یا .js نباید در پوشه آپلودها وجود داشته باشد! تمام فایل‌های php موجود در این پوشه را بدون درنگ حذف کنید.

گام پنجم: بررسی و پاکسازی دیتابیس (Database)

گاهی اوقات بدافزارها صرفاً به فایل‌ها محدود نمی‌شوند و خود را در جدول wp_options یا wp_users دیتابیس جا می‌دهند. وارد phpMyAdmin شوید:

  • جدول wp_users را باز کنید و حساب‌های کاربری ناشی از نفوذ یا ناشناخته را پاک کنید.
  • در جدول wp_options مقدار siteurl و home را چک کنید تا دامنه سایت دیگری جایگزین نشده باشد.
  • به دنبال قطعه کدهای اسکریپت در کادرهای مربوط به کدهای سفارشی هدر و فوتر بگردید.

گام ششم: تغییر کلیه کلیدها و رمزهای عبور

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

  • کلمه عبور تمامی کاربران سطح مدیر (Administrator)
  • کلمه عبور پنل هاست (cPanel / DirectAdmin)
  • کلمه عبور کاربران دیتابیس و اکانت‌های FTP
  • تغییر کلیدهای امنیتی (SALT Keys) در فایل wp-config.php جهت خروج کدهای احراز هویت قدیمی

جدول مقایسه‌ای: پاکسازی دستی یا استفاده از افزونه‌های امنیتی؟

جدول مقایسه‌ای: پاکسازی دستی یا استفاده از افزونه‌های امنیتی؟

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

معیار و روش بررسی توضیحات و مقایسه کاربردی
سرعت اجرا و راحتی کاربر افزونه‌ها (مثل Wordfence) سریع‌تر هستند، اما در آلودگی‌های پیچیده قادر به حذف شل‌ها (Backdoor) نیستند.
دقت در شناسایی کدهای جدید پاکسازی دستی به همراه بررسی لاگ‌ها، تمامی کدهای ناشناخته و متغیرهای انکود شده را به‌طور ۱۰۰٪ ردیابی می‌کند.
تأثیر روی مصرف منابع هاست اسکن افزونه‌ها هنگام بدافزاریابی فشار سنگینی به CPU هاست می‌آورد، در حالی که روش دستی هیچ فشاری ایجاد نمی‌کند.
نتیجه‌گیری نهایی پیشنهاد شده استفاده از اسکن افزونه‌ها فقط برای اولین گام تشخیصی خوب است؛ اما پاکسازی نهایی باید حتماً به‌صورت دستی انجام شود.

اقدامات ضروری پس از پاکسازی برای جلوگیری از هک مجدد

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

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

🛡️ چک‌لیست طلایی ایمن‌سازی دائم سایت

  • ورود دو مرحله‌ای (2FA) را برای تمامی مدیران فعال کنید.
  • غیرفعال‌سازی ویرایشگر فایل از طریق افزودن define('DISALLOW_FILE_EDIT', true); به wp-config.php.
  • اجرای مستمر فرآیند مانیتورینگ امنیتی وردپرس جهت دریافت هشدار تغییر فایل‌ها.
  • محدود کردن تعداد دفعات تلاش برای ورود (Limit Login Attempts).
  • تهیه بک‌آپ‌های منظم روزانه یا هفتگی و ذخیره آن‌ها خارج از سرور اصلی.

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

بخش عیب‌یابی سریع (Troubleshooting)

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

مشکل ۱: هنوز خطای قرمز رنگ گوگل هنگام باز کردن سایت رخ می‌دهد

علت و راه‌حل: گوگل متوجه پاکسازی شما نشده است. وارد گوگل سرچ کنسول شوید، به بخش Security Issues بروید و روی گزینه Request Review کلیک کنید. معمولاً ظرف ۲۴ تا ۴۸ ساعت، جریمه گوگل حذف شده و سایت به حالت عادی بازمی‌گردد. افت ناگهانی ورودی در پروژه‌های سئو و بهینه‌سازی پس از رفع این هشدار به مرور جبران خواهد شد.

مشکل ۲: نمایش صفحه سفید یا خطای ۵۰۰ پس از جایگزینی فایل‌ها

علت و راه‌حل: معمولاً به دلیل عدم تطابق نسخه PHP هاست یا ناهماهنگی یک افزونه رخ می‌دهد. فایل wp-config.php را باز کرده و define('WP_DEBUG', true); قرار دهید تا نام دقیق افزونه خراب نمایش داده شود، سپس پوشه همان افزونه را نام‌گذاری مجدد (Rename) کنید.

مشکل ۳: ریدایرکت شدن سایت روی موبایل اما کارکرد درست روی دسکتاپ

علت و راه‌حل: این یک هک رایج مبتنی بر User-Agent است. هکرها اسکریپتی را در فایل .htaccess یا کدهای جاوااسکریپت قالب پنهان می‌کنند که فقط کاربران موبایل را هدف می‌گیرد. کش مرورگر موبایل را پاک کنید و فایل htaccess را مجدداً از نو بسازید.

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

سوالات متداول کاربران (FAQ)

آیا با نصب یک افزونه مثل Wordfence آلودگی‌ها به طور کامل پاک می‌شوند؟

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

چقدر زمان می‌برد تا جریمه گوگل بعد از پاکسازی رفع شود؟

پس از ثبت درخواست برحصص Review در سرور گوگل از طریق سرچ کنسول، معمولاً بین ۱۲ ساعت تا ۳ روز کاری طول می‌کشد تا وب‌سایت مجدداً بررسی شده و هشدار امنیتی برداشته شود.

چرا با وجود پاکسازی، سایت بعد از چند هفته دوباره هک می‌شود؟

زیرا «منشا نفوذ» بسته نشده است! اگر یک افزونه آلوده یا قالب نول شده همچنان روی سایت باقی بماند، یا رمز عبور هاست تغییر نکند، هکر مجدداً از همان رخنه وارد سایت خواهد شد.

نیاز به کمک حرفه‌ای در پاکسازی و امنیت سایت دارید؟

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

سوالات متداول

آیا برای پاکسازی بدافزار وردپرس حتماً باید هاست را ریست کرد؟

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

اصلی‌ترین دلیل آلوده شدن سایت وردپرسی به بدافزار چیست؟

استفاده از افزونه‌ها و قالب‌های نول‌شده (غیررسمی)، عدم به‌روزرسانی به موقع هسته وردپرس و افزونه‌ها، و همچنین استفاده از کلمات عبور ضعیف مهم‌ترین دلایل نفوذ هکرها هستند.

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

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

پس از پاکسازی بدافزار وردپرس چه اقدام فوری باید انجام دهیم؟

بلافاصله تمامی کلمات عبور هاست، دیتابیس و پیشخوان را تغییر دهید. همچنین کلیدهای امنیتی (Saltها) را در فایل wp-config.php بازنشانی کرده و در گوگل سرچ کنسول درخواست بررسی مجدد ثبت کنید.