زمانیکه سایت وردپرسی شما هک میشود، حس ترس، سردرگمی و بیاعتمادی طبیعی است. اما خبر خوب این است که با یک رویکرد عملی، مرحلهبهمرحله، میتوان امنیت را به سایت برگرداند. در این چک لیست از وردپرس نیاز، تمام مراحل پاکسازی سایت هک شده، از تشخیص علائم تا افزایش امنیت و اعتمادسازی مجدد را بررسی میکنیم. این آموزش امنیتی وردپرس نهتنها برای مبتدیان بلکه برای کاربران حرفهای وردپرس نیز طراحی شده و شامل نکات کاربردی، ابزارهای امنیتی، نمونه کد، و تجربیات میدانی است.
آیا سایت شما بهتازگی هک شده؟ یا نگران نفوذهای احتمالی هستید؟ 🔍 این چکلیست حرفهای، دقیقاً برای شما طراحی شده است—نه فقط برای توسعهدهندگان، بلکه برای مدیران سایت، تولیدکنندگان محتوا، مدیران فنی و حتی کاربران غیرتخصصی که میخواهند در کمترین زمان، امنیت کامل را بازگردانند.
این چکلیست حاصل تجربیات واقعی، پروتکلهای فنی تأییدشده، و استانداردهای امنیتی وردپرس در سال ۲۰۲۵ است؛ ساختاریافته، قابل اجرا، و دستهبندیشده برای شرایط واقعی:
✅ مراحل فوری پس از هک (ریسک را مهار کنید)
🛠 پاکسازی دستی و خودکار فایلها، دیتابیس، کاربران
🔐 اقدامات سختسازی امنیتی (Hardening) برای پیشگیری دوباره
📊 ابزارهای بررسی سلامت سایت در گوگل و سیستمهای اسکن جهانی
📣 روشهای بازسازی اعتماد کاربران و اطلاعرسانی حرفهای
✅ افزونه WP Activity Log Pro را بهصورت رایگان از ما دریافت کنید! (برای فعالسازی، فقط کافیست پس از خرید، یک تیکت با عنوان “درخواست افزونه هدیه” ثبت کنید.)
🔧 این افزونه ارزشمند به شما کمک میکند تا ردیابی کامل لاگهای کاربران، تغییرات فایلها، ورودها، تنظیمات و حتی افزونهها را در یک داشبورد حرفهای داشته باشید.
📩 فرصت را از دست ندهید — همین حالا افزونههای امنیتی اورجینال را تهیه کنید و با خیال راحت وردپرس خود را کنترل و ایمنسازی کنید. 👉 خرید افزونههای امنیتی از وردپرس نیاز
نشانههای واضح هک شدن سایت وردپرسی چیست؟
بسیاری از سایتهای وردپرسی بدون اینکه مدیر آنها بداند، بهصورت پنهان آلوده شدهاند. اما برخی نشانهها هشدار میدهند که باید سریعاً وارد عمل شوید.
کاهش شدید سرعت سایت یا ارور ۵۰۰
یکی از نشانههای کلاسیک آلودگی سایت، کاهش چشمگیر سرعت یا بروز ارورهای ۵۰۰ و ۵۰۳ است. این اتفاق اغلب ناشی از اسکریپتهای مخرب یا مصرف بیشازحد منابع سرور توسط فایلهای آلوده است.
ریدایرکت شدن به سایتهای مشکوک
اگر کاربران هنگام ورود به سایت شما به صفحات نامربوط، قمار، یا فروش دارو ریدایرکت میشوند، به احتمال زیاد کدهای تزریقشده در قالب یا افزونهها این مسیر را ایجاد کردهاند.
ظاهر شدن اسکریپت یا پاپآپ ناخواسته
نمایش پنجرههای پاپآپ تبلیغاتی یا لود شدن فایلهایی مانند iframe مشکوک در مرورگر کاربران، از نشانههای ورود اسکریپتهای تزریقی هستند.
هشدار گوگل یا آنتیویروس مرورگر
گاهی اولین کسی که هک را تشخیص میدهد، مرورگر کروم یا خود گوگل است. اگر با پیامهای هشدار «This site may be hacked» یا «محتوای ناامن» مواجه شدید، فوراً اقدام کنید. اگر هر یک از این نشانهها را تجربه کردید، زمان آن رسیده که با آرامش گامهای اولیه را برای تشخیص عمق آسیببردارید. پیش از هر اقدامی برای حذف فایلهای آلوده یا نصب افزونههای امنیتی، باید با حفظ آرامش و جمعآوری اطلاعات کلیدی، وضعیت سایت را تحلیل کنید. در ادامه این رویکرد را توضیح میدهیم.
گام اول؛ آرامش و بررسی سریع قبل از اقدام
در مواجهه با یک سایت هکشده، اولین و مهمترین اصل، حفظ آرامش است. بسیاری از مدیران در این شرایط تصمیمهایی عجولانه میگیرند که وضعیت را بدتر میکند—از پاک کردن همه فایلها گرفته تا نصب مجدد وردپرس بدون تحلیل دقیق. اما راهحل اصولی، ارزیابی گامبهگام شرایط سایت است تا بتوان در مسیر درست و بدون ریسک پیش رفت.
در این گام، هدف این است که ببینیم سطح دسترسی شما به پنل وردپرس، FTP یا کنترلپنل هاست حفظ شده یا نه. در صورتیکه هیچ دسترسی فعالی نداشته باشید، باید از پشتیبانی هاست بخواهید بررسی کند که آیا فایلهای سایت دستنخورده هستند یا نه. همچنین لازم است بفهمید چه نوع نفوذی صورت گرفته؛ از نوع تزریق کد، ریدایرکت، یا حتی دستکاری کاربران ادمین.
از دسترسی خود مطمئن شوید (wp-admin / FTP)
اگر هنوز میتوانید وارد پیشخوان وردپرس شوید، بررسی کنید که آیا کاربری با دسترسی ادمین جدیدی اضافه شده یا نام شما در لیست کاربران تغییری کرده است. در صورت ورود موفق، از تغییر رمز عبور شروع کنید و اگر دسترسی FTP فعال است، وارد هاست شده و پوشههای wp-content، wp-includes و wp-admin را برای وجود فایلهای جدید یا مشکوک بررسی کنید.
در صورتی که هیچکدام از این مسیرها فعال نیست و ارورهایی مانند 403 یا 500 دریافت میکنید، احتمال نفوذ در سطح بالاتر (مثل .htaccess یا فایلهای اصلی وردپرس) وجود دارد.
سایت را موقتاً آفلاین کنید
اگر اطمینان دارید که سایت شما آلوده است، بهترین کار این است که آن را موقتاً غیرفعال کنید تا از آسیب بیشتر به کاربران جلوگیری شود. این کار را میتوانید با حذف موقت فایل index.php، یا تغییر نام پوشه اصلی انجام دهید، یا حتی در کنترلپنل هاست، قابلیت Maintenance Mode را فعال کنید. اگر از افزونههای امنیتی مثل Wordfence یا Solid Security استفاده میکنید، میتوانید سایت را در حالت قرنطینه قرار دهید.
این تصمیم، علاوهبر محافظت از کاربران، از جریمههای گوگل بابت انتشار بدافزار نیز جلوگیری میکند.
بررسی لاگها (Access Logs / Error Logs)
برای تحلیل دقیقتر نوع نفوذ، بهتر است لاگهای سرور را بررسی کنید. فایلهای access log نشان میدهند که چه IPهایی چه فایلهایی را در چه زمانهایی باز کردهاند. بهویژه IPهایی که بارها wp-login.php یا فایلهای xmlrpc را هدف قرار دادهاند.
در سیپنل، وارد بخش Raw Access شوید و فایل لاگ را دانلود یا مستقیماً با دستور زیر بررسی کنید:
bash
tail -n 100 error_log
در این گزارشها معمولاً آدرس فایلهای آلوده، ارورهای مشکوک یا مسیرهای غیرطبیعی دیده میشوند که سرنخی از نوع آلودگی به شما میدهند.
این بررسی اولیه، مسیر را برای اقدامات جدیتر مثل بکاپگیری، اسکن یا پاکسازی مشخص میکند.
اکنون که به تصویر کلی و دقیقتری از وضعیت سایت رسیدهاید، نوبت به اولین اقدام فنی و حیاتی میرسد: گرفتن بکاپ از سایت در همین وضعیت، پیش از اعمال هر تغییری.
تهیه بکاپ پیش از هرگونه تغییر
یکی از اشتباهات رایج مدیران سایتهای هکشده این است که قبل از هرگونه بررسی و اقدام، فایلها یا افزونههای مشکوک را حذف میکنند. اما واقعیت این است که بدون داشتن بکاپ از نسخه آلوده، نهتنها شانس تحلیل دقیق آسیب از بین میرود، بلکه ممکن است در حین پاکسازی، اطلاعات حیاتی سایت نیز از دست برود. بنابراین، پیش از هر اقدامی، گرفتن یک نسخه پشتیبان از وضعیت فعلی سایت ضروری است.
هدف اصلی در این مرحله، ایجاد یک نسخه کامل از پایگاهداده و فایلهای سایت، دقیقاً در همان وضعیتی است که الان قرار دارد—چه آلوده باشد، چه نه. این نسخه به شما امکان میدهد در صورت اشتباه در مراحل بعدی، بازگردانی انجام دهید یا در صورت نیاز، از آن برای بررسی فنی توسط کارشناس امنیت استفاده کنید.
بکاپ از دیتابیس با phpMyAdmin
برای شروع، وارد کنترلپنل هاست خود شوید و phpMyAdmin را باز کنید. سپس دیتابیس اصلی وردپرس را انتخاب کرده و از گزینه “Export” استفاده کنید. فرمت پیشنهادی SQL است که با اکثر ابزارهای بررسی امنیتی سازگار است.
اگر نمیدانید کدام دیتابیس مربوط به سایت است، فایل wp-config.php را باز کرده و مقدار DB_NAME را بررسی کنید.
php
define( 'DB_NAME', 'wp_example_db' );
بهتر است فایل بکاپ را رمزگذاری کرده و در مکان مطمئن ذخیره کنید.
بکاپ از فایلها با افزونه یا FTP
در مرحله بعد، از طریق افزونههایی مانند UpdraftPlus یا Duplicator (در صورت دسترسی به پیشخوان)، یا با استفاده از یک FTP Client مانند FileZilla، تمام فایلهای وردپرس را دانلود کنید. دقت کنید که فقط پوشه wp-content را بکاپ نگیرید؛ فایلهای مخرب ممکن است در wp-includes یا wp-admin نیز تزریق شده باشند.
اگر از افزونه بکاپگیری استفاده میکنید، مطمئن شوید که بکاپها در فضای ابری (مثل Google Drive یا Dropbox) آپلود میشوند و در دسترس هکر نیستند.
ذخیره بکاپ در لوکیشن امن (Cloud/Local)
حتی اگر سایت شما بهصورت کامل آلوده شده باشد، داشتن نسخهای از آن در یک فضای امن، کلید تحلیل امنیتی و بازیابی است. بهتر است این فایلها را بهصورت رمزگذاریشده در لوکیشنهای مختلف ذخیره کنید: یک نسخه در سیستم شخصی، یک نسخه در فضای ابری با رمز عبور قوی.
این کار نهتنها امنیت اطلاعات شما را تضمین میکند، بلکه در صورت نیاز میتوانید از همین نسخه برای بررسی توسط یک مشاور امنیتی استفاده کنید.
اکنون که نسخهای کامل از سایت در اختیار دارید، نوبت به یکی از مهمترین مراحل یعنی شناسایی دقیق فایلهای آلوده و مسیرهای نفوذ میرسد—مرحلهای که تعیین میکند پاکسازی باید تا چه حد گسترده و فنی باشد.
شناسایی دقیق آسیبها و فایلهای آلوده
پس از تهیه نسخه پشتیبان، اکنون باید با دقت و ابزارهای مناسب، فایلهای آلوده، مسیر نفوذ هکر و میزان آسیب را شناسایی کنید. در این مرحله، تحلیل دقیق ساختار فایلها، بررسی رفتارهای مشکوک، و استفاده از افزونههای امنیتی نقش کلیدی دارند. بدون تشخیص درست، نهتنها نمیتوان پاکسازی موثری انجام داد، بلکه احتمال هک مجدد نیز افزایش مییابد.
باید بدانید که بدافزارها همیشه بهصورت واضح ظاهر نمیشوند. گاهی یک فایل PHP چند خطه در گوشهای از قالب، کل سایت را آلوده میکند. یا یک دستور ساده در دیتابیس میتواند هر بار که کاربر صفحهای را باز میکند، اسکریپت جدیدی بارگذاری کند. بنابراین در این مرحله باید هم ابزار داشته باشید و هم دقت.
استفاده از افزونه Wordfence اورجینال برای اسکن بدافزارها
Wordfence یکی از معتبرترین افزونههای امنیت وردپرس است که قابلیت اسکن دقیق فایلها، بررسی تغییرات مشکوک، و تشخیص فایلهای تزریقشده را دارد. پس از نصب، وارد بخش “Scan” شوید و اسکن کامل را اجرا کنید. این افزونه فایلهای اصلی وردپرس، قالبها، افزونهها و حتی فایلهای آپلود شده را بررسی میکند.
مزیت نسخه اورجینال Wordfence که از وردپرس نیاز تهیه میشود، در این است که بهروزرسانیهای امنیتی را بدون تأخیر دریافت میکنید و خیالتان از بابت استفاده از نسخه نال شده یا دستکاریشده راحت است.
در پایان اسکن، لیستی از فایلهایی که تغییر کردهاند یا مخرب شناخته شدهاند در اختیار شما قرار میگیرد. آنها را بهدقت مرور کنید و از حذف یا ویرایش عجولانه بپرهیزید.
مقایسه فایلهای اصلی با هسته وردپرس
گاهی هکر فایلهای اصلی وردپرس مانند index.php، wp-login.php یا حتی wp-config.php را دستکاری میکند. یکی از روشهای مؤثر، مقایسه این فایلها با نسخه اصلی وردپرس است. میتوانید آخرین نسخه وردپرس را از wordpress.org دانلود کرده و فایلهای آن را با فایلهای موجود در هاست خود مقایسه کنید.
اگر تفاوتهایی مانند توابع ناشناس، کدهای رمزگذاریشده (base64، eval، gzinflate) یا آیفریمهای عجیب در فایلهای فعلی دیدید، احتمال آلودگی بسیار بالاست.
بررسی فایلهایی مثل wp-config.php و .htaccess
فایل wp-config.php اطلاعات بسیار حیاتی مانند دسترسی به دیتابیس را در خود دارد. اضافه شدن حتی یک خط مشکوک به این فایل، ممکن است راهی برای اتصال ریموت یا ارسال اطلاعات به هکر باشد. همینطور htaccess. اغلب هدف حمله است تا ریدایرکتهای مخفی یا دستورات deny/allow غیرعادی به سایت اضافه شود.
کافی است این فایلها را باز کرده و بهدنبال دستوراتی بگردید که بهنظر شما عجیب یا ناآشنا میرسند. برای مثال، اگر چنین چیزی دیدید، نشانهای از تزریق کد است:
php
@eval(base64_decode($_POST['payload']));
در این حالت، باید با احتیاط بسیار و ترجیحاً مشاوره با کارشناس امنیت، آن فایل را بررسی و پاکسازی کنید.
تا اینجای کار، شناسایی شما به یک نقشه اولیه از تهدید رسیده است. حال باید تصمیم بگیرید که پاکسازی را بهصورت دستی انجام دهید یا با کمک افزونهها و راهکارهای خودکار این مسیر را طی کنید.
پاکسازی دستی یا خودکار؟ مقایسه دو رویکرد
اکنون که فایلهای آلوده، مسیرهای نفوذ و کاربران مشکوک شناسایی شدهاند، نوبت به حساسترین بخش مسیر میرسد: پاکسازی. اما این سؤال پیش میآید که آیا بهتر است این کار را بهصورت دستی انجام دهیم یا از افزونههای امنیتی استفاده کنیم؟ پاسخ به این سؤال بسته به مهارت، منابع، و میزان آلودگی سایت دارد.
هرکدام از این دو مسیر مزایا و معایب خاص خود را دارند. پاکسازی دستی برای کاربران حرفهایتر و سایتهای بسیار آلوده گزینه مناسبی است، در حالیکه پاکسازی خودکار برای مدیریت سریعتر و کاهش ریسک حذف اشتباه فایلهای سالم توصیه میشود.
مزایا و معایب پاکسازی دستی
پاکسازی دستی به شما کنترل کامل روی تمام فرآیند میدهد. میتوانید خطبهخط کدها را بررسی کرده، تنها فایلهای آلوده را حذف یا اصلاح کنید، و دیتابیس را بهدقت تمیز کنید. این روش زمانی مناسب است که فایلهایی حیاتی دچار آلودگی شدهاند و نمیخواهید هیچچیز بهصورت خودکار حذف شود.
مزایا:
کنترل دقیق بر هر فایل و خط کد
مناسب برای سایتهای پیچیده یا دارای سفارشیسازی بالا
بدون وابستگی به افزونه خاص
معایب:
نیاز به دانش فنی بالا
زمانبر و پرریسک در صورت اشتباه
احتمال فراموشی بخشی از آلودگی
اگر قصد دارید این مسیر را طی کنید، پیشنهاد میشود یک متخصص امنیت وردپرس یا مشاور فنی مورد اعتماد (مانند تیم وردپرس نیاز) در کنار شما باشد.
استفاده از افزونه Wordfence یا Solid Security خریداری شده از وردپرس نیاز
در بسیاری از موارد، افزونههای حرفهای امنیتی میتوانند سایت شما را با دقت بالا اسکن، فهرست فایلهای مشکوک را مشخص و حتی آنها را بهصورت امن حذف یا قرنطینه کنند. Wordfence و Solid Security دو افزونهای هستند که در این زمینه عملکرد فوقالعادهای دارند و خوشبختانه نسخههای اورجینال آنها از وردپرس نیاز قابل تهیه هستند.
نسخههای ارائهشده در وردپرس نیاز تحت لایسنس GPL و بدون دستکاری (نال) هستند، با تضمین دریافت بهروزرسانیهای امنیتی مستقیم و گارانتی بازگشت وجه. استفاده از این نسخهها باعث میشود عملیات پاکسازی با دقت، سرعت و اطمینان بیشتری انجام شود.
در Wordfence، پس از اسکن میتوانید انتخاب کنید که فایل مشکوک حذف، قرنطینه، یا بازنویسی شود. در Solid Security هم قابلیتهایی مانند حفاظت ورود، قفل خودکار فایلهای حساس، و مانیتورینگ فایلهای تغییر یافته در دسترس است.
راهکار ترکیبی برای سایتهای پیچیده
برای سایتهایی که هم نیاز به دقت بالا دارند و هم زمان کمی برای بازیابی دارند، راهکار ترکیبی پیشنهاد میشود. یعنی ابتدا با استفاده از افزونهها، اسکن و تشخیص فایلهای آلوده انجام شود، سپس پاکسازی نهایی با بازبینی دستی توسط مدیر سایت یا مشاور امنیت صورت گیرد.
این روش ریسک را بهحداقل میرساند و در عین حال سرعت بازگردانی سایت را افزایش میدهد. تیم پشتیبانی وردپرس نیاز نیز در این مسیر میتواند مشاوره فنی، تحلیل فایلها، و حتی اجرای کامل پاکسازی را برای شما انجام دهد.
در پایان این مرحله، سایت شما باید از نظر فایلهای آلوده و دسترسیهای مشکوک پاک شده باشد. اما هنوز مهمترین گام باقی مانده: بازگرداندن فایلهای هسته وردپرس برای اطمینان از پاکبودن زیرساخت.
بازگرداندن فایلهای اصلی وردپرس
حتی اگر فرآیند پاکسازی با دقت بالایی انجام شده باشد، نمیتوان از سلامت کامل فایلهای هسته وردپرس مطمئن بود—مگر اینکه آنها را با نسخه رسمی و اصلی جایگزین کنیم. دلیل این کار بسیار ساده است: هکرها معمولاً فایلهایی مانند index.php، wp-login.php، یا wp-settings.php را هدف میگیرند و با کدی ساده اما پنهان، مسیر ورود دائمی به سایت را برای خود ایجاد میکنند.
بنابراین، بازنویسی فایلهای اصلی وردپرس با نسخه سالم از سایت رسمی وردپرس، یک گام حیاتی در ایمنسازی نهایی زیرساخت سایت وردپرسی شماست.
دانلود آخرین نسخه از wordpress.org
وارد سایت رسمی wordpress.org شوید و آخرین نسخه از وردپرس را دانلود کنید. فایل زیپ را روی سیستم خود استخراج کرده و تنها پوشههای wp-admin و wp-includes را در نظر بگیرید. این دو پوشه معمولاً مورد هدف تزریق کد قرار میگیرند.
همچنین فایلهای root مثل index.php، wp-settings.php و wp-load.php نیز در لیست بازنویسی شما قرار دارند. اما دقت کنید که فایل wp-config.php را دست نزنید مگر اینکه بهصورت دقیق آن را بررسی کرده باشید.
جایگزینی فایلها (بهجز wp-content و wp-config.php)
اکنون از طریق FTP یا فایل منیجر هاست، فایلهای استخراجشده از وردپرس جدید را جایگزین نسخههای قبلی در سایت خود کنید. دقت کنید که پوشه wp-content که شامل افزونهها، قالبها و فایلهای آپلود شماست نباید بازنویسی شود. همچنین فایل wp-config.php که اطلاعات اتصال به دیتابیس را در خود دارد، باید حفظ شود.
اگر از کنترلپنلها مانند cPanel استفاده میکنید، میتوانید فایلهای جدید را در یک پوشه جدید آپلود کرده و از آنجا به پوشه اصلی انتقال دهید تا در حین جایگزینی اختلالی در عملکرد سایت بهوجود نیاید.
با این کار، مطمئن میشوید که هسته وردپرس شما اکنون از نظر ساختاری پاک و بدون کد مخرب است.
قدم بعدی، بررسی و حذف کاربرانی است که ممکن است در زمان نفوذ ایجاد شده باشند یا دسترسی غیرمجاز داشته باشند—یعنی بازنگری کامل در سطح دسترسی کاربران.
حذف کاربران مشکوک و بازنشانی رمزها
هکرها برای حفظ دسترسی پنهانی به سایت وردپرسی شما، معمولاً یک یا چند کاربر با نقش مدیر کل ایجاد میکنند یا رمز عبور کاربران موجود را تغییر میدهند. بنابراین حتی اگر فایلها را پاکسازی کرده باشید، در صورت عدم بررسی سطح دسترسی کاربران، احتمال نفوذ مجدد بسیار بالاست. این مرحله، قلب امنیت مجدد سایت است و باید با دقت انجام شود.
از طریق پنل مدیریت وردپرس یا دیتابیس، تمام کاربران را بررسی کرده و اطمینان حاصل کنید که هیچ حسابی بهصورت مشکوک اضافه نشده باشد. همچنین برای بازنشانی امنیتی، همه رمزها—از جمله مدیران، نویسندگان و حتی اکانتهای FTP—باید تغییر کند.
حذف کاربران مشکوک از پنل
به بخش «کاربران» در پیشخوان وردپرس بروید و لیست کامل اکانتها را بررسی کنید. اگر کاربری با نامهای عجیب، بدون ایمیل معتبر یا بدون نقش مشخص مشاهده کردید، احتمالاً توسط هکر ساخته شده است. این نوع اکانتها اغلب نامهایی مانند admin_new, wpuser001, rootbackup یا حتی اسامی فارسی جعلی دارند.
قبل از حذف کامل، بررسی کنید که این کاربران فعالیت خاصی (مانند نوشتن پست یا تغییر تنظیمات) انجام ندادهاند. سپس آنها را کاملاً حذف کرده و محتواهای وابسته را به ادمین اصلی منتقل کنید.
اگر به پنل وردپرس دسترسی ندارید، از طریق phpMyAdmin و جدول wp_users میتوانید لیست کامل کاربران را ببینید و بررسیهای لازم را انجام دهید.
تغییر رمز همه ادمینها و کاربران FTP
تغییر رمزهای عبور بهصورت کامل، اقدامی حیاتی برای جلوگیری از نفوذ دوباره است. توصیه میشود از رمزهای تصادفی با ترکیب حروف بزرگ، کوچک، اعداد و نشانهها استفاده کنید. رمزهای جدید باید با طول حداقل ۱۲ کاراکتر باشند.
برای تغییر رمز مدیر اصلی وردپرس، اگر به پنل دسترسی ندارید، میتوانید از طریق phpMyAdmin دستور زیر را اجرا کنید:
sql
UPDATE wp_users SET user_pass = MD5('NewStrongPassword') WHERE user_login = 'admin';
همچنین وارد کنترلپنل هاست شوید و تمام اکانتهای FTP را بررسی کرده و رمز آنها را تغییر دهید یا اکانتهای غیرضروری را حذف کنید.
فعالسازی احراز هویت دو مرحلهای
حتی اگر سایت پاکسازی شده و رمزها تغییر یافته باشند، باز هم امکان نفوذ از طریق روشهای brute-force وجود دارد. راهحل مطمئن، فعالسازی احراز هویت دو مرحلهای (2FA) برای کاربران سطح بالا است. این قابلیت را میتوانید از طریق افزونههایی مانند Wordfence, Solid Security یا WP 2FA فعال کنید.
نسخههای اورجینال این افزونهها را میتوانید با پشتیبانی کامل و ضمانت از وردپرس نیاز تهیه کنید تا امنیت چندلایه و بدون دردسر را تجربه کنید.
در این مرحله، شما دسترسی کاربران غیرمجاز را قطع کردهاید و مسیر نفوذ از سمت اکانتها را بستهاید. حالا باید نگاهی عمیقتر به دیتابیس بیندازیم—جایی که هکرها معمولاً شورتکدها، اسکریپتها یا کدهای تزریقی خود را پنهان میکنند.
پاکسازی دیتابیس از کدهای مخرب
یکی از پیچیدهترین اما حیاتیترین مراحل در پاکسازی یک سایت وردپرسی هکشده، بررسی دقیق پایگاهداده است. در بسیاری از حملات، کدهای مخرب فقط در فایلهای PHP قرار نمیگیرند، بلکه در داخل جداول دیتابیس—بهویژه در محتواهای HTML، تنظیمات قالب یا افزونهها—تزریق میشوند. اگر این کدها را نادیده بگیرید، ممکن است حتی پس از بازسازی کامل فایلها، سایت دوباره آلوده شود.
در این مرحله باید بخشهایی مانند محتوای پستها (wp_posts)، گزینههای سایت (wp_options) و حتی متادیتاها را برای یافتن توابع رمزگذاریشده، شورتکدهای ناشناس، یا اسکریپتهای جاوااسکریپت مشکوک بررسی کنید.
جستوجو در جدول wp_options و wp_posts
وارد phpMyAdmin شوید و در دیتابیس سایت خود، ابتدا جدول wp_options را باز کنید. فیلدهایی مانند siteurl، home و active_plugins باید دقیقاً مطابق ساختار سایت باشند. اگر در مقادیر این فیلدها آیفریم، <script>, یا کدهایی مانند base64, eval, gzinflate، shell_exec مشاهده کردید، احتمال آلودگی بسیار بالاست.
همچنین، در جدول wp_posts، مخصوصاً در ستون post_content، ممکن است اسکریپتهایی تزریق شده باشند که هنگام نمایش نوشتهها یا برگهها، کاربران را به صفحات مخرب منتقل میکنند.
برای جستوجوی سریع، از کوئری زیر استفاده کنید:
sql
SELECT * FROM wp_posts WHERE post_content LIKE '%base64_decode%';
یا برای بررسی اسکریپتهای HTML مشکوک:
sql
SELECT * FROM wp_posts WHERE post_content LIKE '%<script%';
نتایج را با دقت بررسی و در صورت نیاز پاکسازی یا حذف کنید.
حذف شورتکدهای مخرب
برخی از بدافزارها در قالب شورتکد وارد محتوا میشوند. ممکن است در بین نوشتهها یا ابزارکها شورتکدهایی مانند [malicious_code] یا [iframe src=…] دیده شود که در ظاهر طبیعی بهنظر میرسند اما در باطن عملکرد مخربی دارند.
میتوانید از ابزارهای جستوجوی پیشرفته در پنل وردپرس یا SQL Queryها برای شناسایی شورتکدهای ناشناس استفاده کنید. این شورتکدها اغلب توسط افزونههای نالشده یا آلوده ایجاد میشوند.
استفاده از دستورات SQL تمیزکننده
اگر دیتابیس بهشدت آلوده باشد، استفاده از دستورات SQL برای حذف دستهجمعی محتوای مشکوک مفید است. اما باید با نهایت دقت انجام شود. برای مثال، دستور زیر میتواند تمامی ردیفهایی که شامل کد رمزگذاریشده هستند را شناسایی کند:
sql
SELECT * FROM wp_options WHERE option_value LIKE '%eval(base64_decode(%';
و در صورتی که مطمئن باشید، میتوانید از دستور DELETE برای پاکسازی آنها استفاده کنید.
توصیه اکید ما این است که قبل از اجرای هر دستور SQL، یک نسخه پشتیبان از دیتابیس تهیه کنید تا در صورت خطا، بتوانید اطلاعات را بازگردانید.
اگر بهدنبال اطمینان کامل از پاکبودن پایگاهداده خود هستید، میتوانید از تیم مشاوره امنیتی وردپرس نیاز درخواست بررسی تخصصی کنید. ما با اسکن حرفهای دیتابیس و تهیه گزارش ساختاری، راهکار کامل پاکسازی را ارائه میدهیم.
در این مرحله، دیتابیس شما بهاحتمال زیاد از کدهای تزریقی خالی شده است. حال نوبت آن رسیده که بخشهایی را که معمولاً دروازه ورود بدافزار بودهاند—یعنی افزونهها و قالبها—با دقت بازبینی کنید.
بازبینی کامل افزونهها و قالبها
در اغلب موارد، مسیر اصلی ورود بدافزار به سایت، یکی از افزونهها یا قالبهای نصبشده است. چه آن افزونه از منبع نامعتبری دانلود شده باشد، چه بهدلیل قدیمی بودن آسیبپذیر شده باشد، نتیجه یکیست: نقطهای پنهان برای نفوذ و اجرای کدهای مخرب. بنابراین در این مرحله، باید بدون هیچ تعارف یا تردیدی، کل اکوسیستم قالبها و پلاگینها را مورد بررسی قرار دهید.
افزونهها و قالبها دقیقاً مثل درهای ورود به خانه هستند. اگر در ضعیف یا بدون قفل باشد، تعجبی ندارد که دزد وارد شود—even اگر بقیه بخشها ایمن باشند. پاکسازی و بهروزرسانی این بخش، بهاندازه هسته وردپرس اهمیت دارد.
حذف قالبها و پلاگینهای غیرفعال
اولین گام، حذف تمام افزونهها و قالبهایی است که غیرفعال هستند. این موارد ممکن است حتی اگر فعال نباشند، در پوشه wp-content حضور داشته باشند و توسط هکر بهعنوان پایگاه مخفی استفاده شوند.
در پنل وردپرس به بخش «افزونهها» و سپس «قالبها» بروید و هرآنچه فعال نیست را کاملاً حذف کنید. صرف غیرفعالسازی کافی نیست—باید فایلها بهطور کامل از روی هاست حذف شوند.
همچنین با ورود به مسیر /wp-content/plugins/ و /wp-content/themes/ از طریق FTP، اطمینان حاصل کنید که فایلهای مشکوک یا ناشناختهای در پوشهها وجود ندارد.
بهروزرسانی همه موارد فعال
افزونهها و قالبهایی که فعال هستند اما بهروزرسانی نشدهاند، نقطه ضعف بزرگی محسوب میشوند. هکرها بهطور روزانه از طریق دیتابیسهای آسیبپذیری عمومی (مانند WPScan) بهدنبال پلاگینهای آسیبپذیر میگردند.
بهروزرسانی موارد فعال از طریق پیشخوان وردپرس یا FTP باید انجام شود و در صورت امکان، نسخه اورجینال آنها از منابع معتبر مانند وردپرس نیاز جایگزین شود. نسخههای اورجینال علاوهبر دریافت سریعتر وصلههای امنیتی، تضمین میکنند که کدی مخفی یا تزریقی داخل فایلها قرار ندارد.
بررسی نسخههای نال شده یا دانلود از منابع نامعتبر
اگر تاکنون از افزونه یا قالب نالشده استفاده کردهاید، باید آن را بهطور کامل حذف کنید—حتی اگر به ظاهر کار میکرده و مشکلی نداشته است. نالبودن تنها به معنای رایگان بودن نیست؛ در واقع این نسخهها اغلب حاوی درهای پشتی (Backdoor) یا کدهای تزریقی هستند که به مرور، سایت شما را هدف حملات بیشتر قرار میدهند.
اگر قالب یا افزونه خاصی برای شما حیاتی است، نسخه اورجینال و تحت لایسنس GPL آن را از وردپرس نیاز تهیه کنید. تمامی محصولات ارائهشده در وردپرس نیاز با تضمین سلامت فایل، بدون کد مخرب، و همراه با پشتیبانی نصب و بروزرسانی ارائه میشوند.
اکنون دیگر باید با خیال راحت بگوییم که قالبها و افزونهها نیز در وضعیت پاک و ایمن قرار دارند. اما هنوز سایت کاملاً مقاوم نشده؛ لازم است با مجموعهای از اقدامات فنی، ساختار وردپرس را سختسازی (Hardening) کنیم تا از حملات آینده جلوگیری شود.
افزایش امنیت بعد از پاکسازی (سختسازی امنیتی)
اکنون که سایت شما از کدهای مخرب، فایلهای مشکوک، کاربران نفوذی و قالبهای آلوده پاکسازی شده، باید یک قدم فراتر بروید: ساخت یک قلعه واقعی برای وردپرس! در این مرحله، اقدامات سختسازی یا WordPress Hardening بهکمک شما میآید تا از نفوذهای آینده جلوگیری شود.
هکرها اغلب همان راهی را که یکبار استفاده کردهاند، بار دیگر امتحان میکنند. پس اگر فقط سایت را پاکسازی کرده باشید اما زیرساخت امنیتی را تقویت نکنید، بهزودی در معرض تهدید مجدد قرار میگیرید. با اجرای تنظیمات زیر، میتوانید سطح امنیت سایت را بهشکل چشمگیری افزایش دهید.
نصب افزونه امنیتی مانند Wordfence یا Solid Security
هیچ سایت وردپرسی بدون یک افزونه امنیتی فعال، ایمن نیست. دو افزونه قدرتمند در این زمینه Wordfence و Solid Security هستند که با قابلیتهایی مانند فایروال، مانیتور فایل، جلوگیری از حملات Brute Force و احراز هویت دو مرحلهای، بخش زیادی از تهدیدها را دفع میکنند.
نسخههای اورجینال و تحت لایسنس این افزونهها را میتوانید از وردپرس نیاز تهیه کنید. این نسخهها برخلاف نسخههای رایگان یا نالشده، کاملاً سالم، بهروز و قابل اعتماد هستند. همچنین از پشتیبانی فنی ویژه برخوردار خواهید بود.
نصب این افزونهها مانند داشتن یک نگهبان دائمی در دروازه وردپرس است.
محدودسازی دسترسی به wp-login.php با IP
یکی از رایجترین مسیرهای حمله، فرم ورود وردپرس است. با محدود کردن این فایل به IPهای مشخص، میتوانید جلوی اکثر حملات Brute Force را بگیرید.
برای این کار، کافی است کد زیر را به فایل .htaccess سایت خود اضافه کنید:
<Files wp-login.php>
Order deny,allow
Deny from all
Allow from 123.456.789.000
</Files>
بهجای 123.456.789.000، آدرس IP خودتان را وارد کنید. اگر دسترسی به اینترنت با IP پویا دارید، بهتر است از راهکارهای جایگزین مانند Google reCAPTCHA یا افزونههای ورود ایمن استفاده کنید.
غیرفعالسازی ویرایشگر داخلی وردپرس
ویرایشگر فایل در پنل وردپرس (بخش نمایش > ویرایشگر قالب) ابزاری خطرناک است. اگر هکر بتواند به پیشخوان وردپرس شما وارد شود، از همین بخش میتواند به سادگی هر نوع کدی را تزریق کند. برای جلوگیری از این مشکل، کافی است با یک خط کد در wp-config.php این قابلیت را غیرفعال کنید:
php
define('DISALLOW_FILE_EDIT', true);
با این دستور ساده، مسیر تزریق کد از داخل پنل بهطور کامل بسته میشود.
اجرای همین سه اقدام ساده اما کلیدی، سطح امنیت سایت را به شکل چشمگیری ارتقا میدهد. اما پیش از آنکه سایت را بازگشایی و فعالسازی کامل انجام دهید، یک مرحله مهم دیگر باقی مانده: اطمینان از سلامت نهایی سایت با ابزارهای امنیتی و تأیید گوگل.
بررسی سلامت سایت با ابزارهای امنیتی و گوگل
پس از پایان عملیات پاکسازی و اجرای تنظیمات امنیتی، وقت آن رسیده که بررسی نهایی را انجام دهید. حتی اگر تمام مراحل قبلی را دقیق انجام داده باشید، بدون تأیید نهایی سلامت سایت توسط ابزارهای تخصصی و گوگل، نمیتوان با اطمینان گفت که سایت کاملاً پاک و آماده فعالیت است.
این مرحله نهتنها برای آرامش خاطر شما، بلکه برای بازیابی اعتماد گوگل، مرورگرها و کاربران ضروری است. مخصوصاً اگر قبلاً اخطار امنیتی دریافت کردهاید یا سایت در نتایج جستجو با برچسب “This site may be hacked” نمایش داده شده باشد، این بررسی نهایی حیاتیتر میشود.
استفاده از Google Search Console برای بررسی هشدارها
اگر سایت شما در Google Search Console ثبت شده باشد، گوگل در صورت شناسایی بدافزار یا محتوای مشکوک، در قسمت Security Issues به شما هشدار میدهد. حتی اگر ثبت نکردهاید، اکنون بهترین زمان برای این کار است.
در صورت دریافت هشدار، بعد از پاکسازی، باید روی گزینه “Request Review” کلیک کرده و توضیحی درباره اقدامات انجامشده بنویسید؛ مثلاً:
We’ve removed malicious code, restored core files, scanned the database, and secured all accounts. The site has been fully cleaned and hardened against further attacks.
در کمتر از چند روز، گوگل سایت شما را مجدد بررسی میکند و در صورت تأیید، برچسب هشدار حذف خواهد شد.
بررسی سایت با VirusTotal و Sucuri SiteCheck
برای اطمینان از عدم وجود کدهای مخرب یا اتصال به دامنههای مشکوک، ابزارهای رایگانی مانند VirusTotal و Sucuri SiteCheck بسیار مفید هستند. کافی است آدرس سایت را در این ابزارها وارد کرده و گزارش امنیتی لحظهای دریافت کنید.
این ابزارها معمولاً مواردی مانند:
بارگذاری اسکریپتهای خارجی مشکوک
ریدایرکت به دامنههای آلوده
لینکهای خارجی به دامنههای اسپم
فایلهای مشکوک در HTML یا JS
را تشخیص میدهند.
اگر در نتایج این ابزارها همچنان هشدارهایی باقی مانده بود، بهاحتمال زیاد یک فایل یا اسکریپت مخرب از چشم شما دور مانده و باید مجدداً فایلهای قالب یا افزونهها را بررسی کنید.
بررسی فایلهای JS و CSS سفارشی
گاهی هکرها بهجای فایلهای PHP، از فایلهای جاوااسکریپت یا استایلشیت برای بارگذاری محتوای مخرب استفاده میکنند—چون این فایلها معمولاً کمتر مورد بررسی قرار میگیرند. بهویژه فایلهایی که در قالب سایت یا افزونهها قرار دارند.
از طریق فایلمنیجر هاست یا افزونههایی مانند Wordfence، فایلهای .js و .css را بازبینی کنید و بهدنبال مواردی مانند eval, document.write, setInterval، یا کدهای رمزگذاریشده باشید.
اگر زمان یا تخصص لازم برای این بررسی را ندارید، میتوانید از تیم پشتیبانی وردپرس نیاز بخواهید این مرحله را بهصورت کامل برای شما انجام دهد. این تیم با استفاده از اسکن حرفهای و گزارشهای دقیق، سلامت کامل سایت شما را تضمین میکند.
در این نقطه، سایت شما از نگاه گوگل، کاربران و ابزارهای امنیتی تأیید شده و میتواند بدون نگرانی مجدد فعال شود. حالا زمان آن رسیده که اعتماد کاربرانتان را نیز بازگردانید—بهویژه اگر آنها با پیامهای هشدار امنیتی یا رفتارهای عجیب سایت مواجه شدهاند.
اطلاعرسانی به کاربران یا بازگردانی اعتماد
پاکسازی فنی سایت تنها نیمی از ماجراست؛ اگر کاربرانتان در روزهای گذشته با هشدارهای امنیتی، ریدایرکت به صفحات مشکوک یا ظاهر غیرعادی مواجه شدهاند، احتمالاً بخشی از اعتماد آنها از بین رفته است. اینجاست که باید مانند یک برند حرفهای رفتار کرده و فرآیند بازسازی اعتماد کاربران را با شفافیت، همدلی و اطلاعرسانی دقیق مدیریت کنید.
بسیاری از صاحبان سایتها پس از حمله سایبری، ترجیح میدهند سکوت کنند یا موضوع را پنهان نمایند. اما این رویکرد، در دنیای امروز نهتنها مؤثر نیست، بلکه باعث بیاعتمادی بیشتر میشود. کاربران ترجیح میدهند بدانند چه اتفاقی افتاده، چه اقداماتی صورت گرفته، و آیا اکنون سایت امن است یا نه.
انتشار اطلاعیه شفاف در بلاگ یا شبکههای اجتماعی
در اولین قدم، یک اطلاعیه کوتاه و شفاف در بلاگ سایت یا شبکههای اجتماعی منتشر کنید. این متن باید صادقانه، بدون جزییات فنی پیچیده، اما حرفهای باشد. مثلاً:
اخیراً یک حمله امنیتی به بخشی از زیرساخت سایت ما صورت گرفت که با اقدام فوری، تمامی مسیرهای نفوذ شناسایی و پاکسازی شدند. اکنون سایت کاملاً امن است و اقدامات امنیتی پیشرفتهتری نیز اجرا شدهاند. از همراهی شما سپاسگزاریم.
این اطلاعیه باید حاوی سه عنصر باشد:
پذیرش اتفاق (نه انکار)
توضیح ساده از اقدامات انجامشده
تأکید بر بازگشت به حالت امن و پیشرفتهتر
ارسال ایمیل اطمینانبخش به کاربران
اگر سایت شما دارای لیست ایمیل کاربران، خریداران یا مشترکین خبرنامه است، بهتر است یک ایمیل اطلاعرسانی رسمی ارسال کنید. در این ایمیل، میتوانید نکات زیر را مطرح کنید:
زمان و نوع مشکل (بدون ایجاد اضطراب)
اینکه اطلاعات کاربران آسیبی ندیده یا رمزها ایمن هستند
پیشنهاد تغییر رمز عبور برای اطمینان بیشتر
لینکهایی به اطلاعیه یا اقدامات امنیتی
اگر از سیستمهایی مانند MailPoet یا افزونههای ارسال ایمیل داخلی استفاده میکنید، قبل از ارسال از سلامت کامل افزونه و محتوا مطمئن شوید.
ریبرندینگ یا اعتمادسازی مجدد برند
در شرایط خاص که حمله سایبری باعث کاهش شدید اعتماد شده باشد، میتوان یک مرحله بازسازی برند یا mini-rebranding را اجرا کرد. این موضوع ممکن است شامل:
بازطراحی گرافیکی صفحات حساس (مانند صفحه ورود یا حساب کاربری)
اضافه کردن نشان “Protected by Wordfence/Solid Security” در فوتر
راهاندازی کمپین محتوایی با موضوع امنیت سایت و شفافیت برند
در صورتیکه از افزونههای اورجینال و پشتیبانیشده توسط وردپرس نیاز استفاده کردهاید، میتوانید از آنها بهعنوان ابزار تبلیغ اعتماد نیز بهره ببرید: مثلاً بنویسید:
این سایت توسط نسخه اورجینال Wordfence از وردپرس نیاز محافظت میشود.
شفافیت و اقدام پیشگیرانه، اعتماد ازدسترفته را بسیار سریعتر از انکار یا سکوت بازمیگرداند. اکنون که هم ساختار سایت و هم ذهن کاربران آماده شدهاند، زمان معرفی یک راهحل حرفهای برای کسانیست که میخواهند پاکسازی سایتشان را به متخصصان بسپارند.
جمعبندی؛ سایت را نجات دادی، حالا نگذار دوباره تکرار شود
هک شدن یک سایت وردپرسی میتواند تجربهای استرسزا، پرهزینه و حتی آسیبزننده به برند شما باشد. اما همانطور که دیدید، با یک رویکرد مرحلهبهمرحله، آگاهی فنی و استفاده از ابزارهای مطمئن، میتوان کنترل اوضاع را بهدست گرفت و سایت را با اطمینان پاکسازی کرد.
در این راهنما، از تشخیص علائم اولیه تا شناسایی فایلهای مخرب، بازسازی دیتابیس، حذف دسترسیهای غیرمجاز، و اجرای سختسازی امنیتی، بهصورت کامل و کاربردی آموزش داده شد. اکنون نهتنها میدانید چگونه سایت هکشده را نجات دهید، بلکه میتوانید با اطمینان کامل آن را ایمنتر از قبل نگه دارید.
یادتان باشد: ✅ همیشه بکاپ منظم بگیرید ✅ فقط از افزونهها و قالبهای اورجینال استفاده کنید ✅ و برای هر مرحله از امنیت، برنامهای دقیق داشته باشید
در نهایت اگر زمان، دانش یا منابع کافی برای اجرای کامل این مراحل را ندارید، کمکگرفتن از یک تیم متخصص، نهتنها هزینه نیست، بلکه سرمایهگذاری برای آینده سایت شماست. افزونههای امنیتی اورجینال، خدمات تخصصی پاکسازی و پشتیبانی فنی از برندهایی مانند وردپرس نیاز میتوانند مسیر بازگشت به امنیت را بسیار سریعتر، مطمئنتر و بدون استرس طی کنند.
اگر این مقاله برایتان مفید بود، حتماً با دوستان، همکاران و دیگر مدیران سایت به اشتراک بگذارید. شاید سایت آنها هم، همین حالا، بیخبر از همهچیز، آلوده شده باشد.