
به اشتراک بگذارید
- ✅ شناسایی سریع و واکنش فوری تا 90٪ آسیب را کاهش میدهد
- ✅ سرورهای امن وبداده با فایروال پیشرفته و پشتیبانی 24/7 در حال ارائه هستند
آنچه در این مقاله میخوانید:
علائم واضح و فوری وبسایت هک شده
- محتوای ناخواسته یا اسپم در صفحات
- تغییر صفحه اصلی به محتوای مخرب
- ریدایرکت خودکار به سایتهای دیگر
- پاپآپهای مزاحم و تبلیغات غیرمعمول
- صفحات جدید با عنوانهای غریب در نتایج گوگل
- هشدار “این سایت ممکن است هک شده” در گوگل
- افزایش ناگهانی مصرف CPU و RAM سرور
- فایلهای ناشناخته در دایرکتوری سرور
- کاربران جدید در پنل ادمین
- ایمیلهای هرزنامه از سرور شما

مشکوک به هک
↓
علائم ظاهری → بررسی محتوا
علائم فنی → بررسی سرور
علائم امنیتی → بررسی لاگها
↓
تأیید هک → شروع فرآیند نجات
در 73٪ موارد، هکرها از آسیبپذیری افزونههای قدیمی برای نفوذ استفاده میکنند و نه خود CMS.
فاز اول: مهار فوری آسیب و جلوگیری از گسترش (تکنیک 1-4)
تکنیک 1: آفلاین کردن فوری سایت (حالت تعمیرات)
سایت آلوده میتواند بازدیدکنندگان را آلوده کند، اطلاعات آنها را سرقت کند و رتبه SEO شما را نابود کند.
👇 آفلاین کردن فوری سایت در وردپرسی
- گام 1: پیدا کردن فایل .htaccess
1. وارد cPanel شوید
2. File Manager را باز کنید
3. به مسیر public_html بروید
4. در بالای صفحه “Settings” کلیک کنید
5. گزینه “Show Hidden Files” را فعال کنید
6. فایل .htaccess را پیدا میکنید (در پوشه اصلی وردپرس)


- گام 2: ویرایش فایل
1. روی .htaccess راستکلیک کنید
2. “Edit” را انتخاب کنید
3. در ابتدای فایل این کد را اضافه کنید:


RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^185\.88\.155\.20$
RewriteCond %{REQUEST_URI} !^/maintenance\.html$
RewriteRule ^(.*)$ /maintenance.html [R=302,L] - گام 3: ساخت صفحه Maintenance
نحوه ساخت:
1. در همان File Manager باشید (در پوشه public_html)
2. روی دکمه “+ File” یا “New File” کلیک کنید
3. نام فایل را بنویسید: maintenance.html
4. روی فایل جدید راستکلیک → Edit
5. محتوای زیر را کپی و Paste کنید:


<!DOCTYPE html>
<html>
<head>
<title>در حال تعمیرات</title>
<meta charset="utf-8">
</head>
<body style="text-align:center; padding-top:100px; font-family:Tahoma;">
<h1>🔧 سایت در حال تعمیرات است</h1>
<p>به زودی برمیگردیم!</p>
</body>
</html> 
- گام 4: جایگزینی IP شما: برگردید به فایل .htaccess که در گام 2 ویرایش کردید.
در این خط:
RewriteCond %{REMOTE_ADDR} !^185\.88\.155\.20$
↑↑↑ این عدد ↑↑↑ تکنیک 2: تغییر فوری تمام رمزهای عبور
| سرویس | اولویت | دستورالعمل |
|---|---|---|
| پنل هاستینگ | 🔴 بحرانی | cPanel/DirectAdmin – اول از همه |
| FTP | 🔴 بحرانی | تمام اکانتهای FTP را حذف/تغییر دهید |
| دیتابیس | 🔴 بحرانی | MySQL User Password از phpMyAdmin |
| ادمین CMS | 🔴 بحرانی | wp-admin یا admin panel |
| SSH | 🔴 بحرانی | اگر دسترسی SSH دارید |
- رمز ضعیف: admin123
- رمز قوی: K#9mP@x2$vL8&qW5
– حداقل 16 کاراکتر
– ترکیب حروف (A-z)، اعداد (0-9)، نمادها (!@#$)
– هیچ کلمه قاموسی ندارد
از Password Manager های معتبر مانند LastPass یا 1Password استفاده کنید تا رمزهای پیچیده را ذخیره کنید.
تکنیک 3: قطع موقت دسترسیهای مشکوک
- روش 1: از داخل phpMyAdmin
مسیر: cPanel → Databases → phpMyAdmin
- وارد cPanel شوید
- بخش “Databases” → “phpMyAdmin” کلیک کنید
- از منوی سمت چپ، دیتابیس وردپرس خود را انتخاب کنید
(معمولاً نامش شامل username_wp یا username_wor است) - بالای صفحه روی تب “SQL” کلیک کنید
- کدهای زیر را یکی یکی اجرا کنید:

SELECT user_login, user_email FROM wp_users WHERE ID IN
(SELECT user_id FROM wp_usermeta WHERE meta_key = 'wp_capabilities'
AND meta_value LIKE '%administrator%'); - نتیجه: لیست تمام ادمینها را نشان میدهد
- اگر کاربری را نمیشناسید → مشکوک است!
اول باید ID کاربر مشکوک را بدانید:
- در نتایج مرحله 1، اگر username مشکوکی دیدید
- برای پیدا کردن ID اش این کد را اجرا کنید:
SELECT user_login, user_email FROM wp_users WHERE ID IN
(SELECT user_id FROM wp_usermeta WHERE meta_key = 'wp_capabilities'
AND meta_value LIKE '%administrator%'); - فرض کنید ID کاربر = 99
- حالا با این کد حذفش کنید:
DELETE FROM wp_users WHERE user_login = 'hacker_username';
DELETE FROM wp_usermeta WHERE user_id = 99; - روش 2: از داشبورد وردپرس
مسیر: wp-admin → Users → All Users
- وارد داشبورد وردپرس شوید
- کاربران → همه کاربران
- لیست را بررسی کنید
- کاربر مشکوک → Delete
- محتوای او را به کاربر دیگری منتقل کنید یا حذف کنید
mv wp-content/plugins wp-content/plugins-disabled تکنیک 4: بکآپ فوری وضعیت فعلی (برای بررسی)
tar -czf backup-hacked-$(date +%Y%m%d).tar.gz /home/username/public_html/
mysqldump -u username -p database_name > backup-db-$(date +%Y%m%d).sql فاز دوم: پاکسازی و بازیابی کامل (تکنیک 5-8)
تکنیک 5: بازیابی از بکآپ تمیز
├─ بکآپ دیروز → احتمالاً آلوده
├─ بکآپ هفته پیش → بررسی کنید
├─ بکآپ ماه پیش → احتمال بالای تمیز بودن
└─ بکآپ 3 ماه پیش → مطمئناً تمیز (اما قدیمی)
- دانلود بکآپ تمیز
- اسکن آن با آنتیویروس
- حذف کامل فایلهای فعلی سایت
- آپلود بکآپ تمیز
- import دیتابیس تمیز
- آپدیت فوری CMS و افزونهها
تکنیک 6: اسکن عمیق با ابزارهای تخصصی
| ابزار | نوع | مناسب برای |
|---|---|---|
| Wordfence | افزونه وردپرس | اسکن و پاکسازی خودکار |
| Sucuri SiteCheck | آنلاین | بررسی blacklist و malware |
| ClamAV | سرور | اسکن کل فایلهای سرور |
| AI-Bolit | اسکریپت PHP | یافتن backdoor های مخفی |
تکنیک 7: بررسی لاگهای سرور و یافتن نقطه نفوذ
grep "POST" /var/log/apache2/access.log | grep -i "wp-login\|admin"
awk '{print $1}' /var/log/apache2/access.log | sort | uniq -c | sort -rn | head -20 tail -500 /var/log/apache2/error.log | grep -i "fatal\|warning" cat /var/log/proftpd/access.log | tail -100 درخواستهای POST مکرر به فایلهای خاص
آپلود فایلهای PHP مشکوک
دسترسیهای ناگهانی از IP های خارجی
تکنیک 8: حذف Backdoor ها و Web Shell ها
فایلهای مخفی که هکر برای دسترسی مجدد جایگذاری میکند.
├─ /wp-content/uploads/ (فایلهای PHP)
├─ /wp-includes/ (فایلهای اضافه شده)
├─ /wp-content/themes/[theme]/includes/
├─ /images/ یا /tmp/ (دایرکتوریهای عمومی)
└─ فایلهای با نامهای معمولی مثل “index.php.bak”
find /home/user/public_html/wp-content/uploads -name "*.php"
find /home/user/public_html -type f -mtime -7 -name "*.php"
grep -r "eval(base64_decode" /home/user/public_html/
grep -r "system(" /home/user/public_html/
grep -r "exec(" /home/user/public_html/ cat suspicious_file.php
rm suspicious_file.php فاز سوم: تقویت امنیت دائمی و پیشگیری (تکنیک 9-12)
تکنیک 9: بهروزرسانی کامل CMS، قالب و افزونهها
- ✅ وردپرس:
1. بکآپ کامل قبل از آپدیت
2. آپدیت هسته وردپرس به آخرین نسخه
3. آپدیت تمام افزونهها (حذف افزونههای غیرفعال)
4. آپدیت قالب (اگر قالب Premium است، از سایت اصلی دانلود کنید)
5. آپدیت PHP به نسخه بالاتر
- هر افزونه = یک نقطه ورود احتمالی. فقط آنچه واقعاً نیاز دارید نگه دارید.
تکنیک 10: نصب فایروال وب اپلیکیشن (WAF)
| سرویس | نوع | قیمت | توصیه |
|---|---|---|---|
| Cloudflare | Cloud-based | رایگان تا $200/ماه | بهترین برای همه ⭐ |
| Sucuri | Cloud-based | $199/سال | عالی برای وردپرس |
| Wordfence | Plugin | رایگان/$99/سال | مناسب سایتهای کوچک |
2. اضافه کردن دامنه
3. تغییر Nameserver به Cloudflare
4. فعال کردن:
├─ SSL/TLS (حداقل Flexible)
├─ Firewall Rules
├─ DDoS Protection
└─ Bot Fight Mode
5. قوانین فایروال سفارشی:
– Block کشورهای پرخطر
– محدود کردن تعداد درخواست به wp-login
تکنیک 11: تنظیم صحیح مجوزهای فایلها (File Permissions)
find /home/user/public_html -type d -exec chmod 755 {} \;
find /home/user/public_html -type f -exec chmod 644 {} \;
chmod 600 wp-config.php
echo "php_flag engine off" > /wp-content/uploads/.htaccess - 755 = rwxr-xr-x (مالک میتواند بنویسد، دیگران فقط خواندن)
- 644 = rw-r–r– (مالک میتواند بنویسد، دیگران فقط خواندن)
- 600 = rw——- (فقط مالک دسترسی دارد)
تکنیک 12: راهاندازی مانیتورینگ و هشدار خودکار
- بررسی در دسترس بودن سایت هر 5 دقیقه
- هشدار ایمیل/SMS در صورت Down شدن
- هشدار برای ورود ناموفق
- هشدار برای تغییرات فایل
- هشدار برای افزونههای آسیبپذیر
- هشدار Security Issues
- هشدار Manual Actions
- مانیتور وضعیت Index
ایمیل فوری برای:
✅ ورود با رمز اشتباه بیش از 5 بار
✅ تغییر فایلهای هسته (Core Files)
✅ فایل جدید در دایرکتوری /uploads/
✅ مصرف CPU بالای 80% برای بیش از 10 دقیقه
چکلیست کامل بازیابی سایت هک شده
✅ تغییر تمام رمزهای عبور (هاستینگ، FTP، DB، Admin)
✅ بکآپ فوری وضعیت فعلی
✅ بررسی و حذف کاربران مشکوک
✅ غیرفعال کردن موقت افزونهها
✅ بازیابی از بکآپ تمیز (اگر دارید)
✅ اسکن کامل با Wordfence یا Sucuri
✅ بررسی لاگهای سرور
✅ حذف Backdoor ها و فایلهای مخرب
✅ حذف کدهای مخرب از دیتابیس
✅ آپدیت CMS، قالب و افزونهها
✅ نصب WAF (Cloudflare)
✅ تنظیم مجوزهای صحیح فایلها
✅ فعالسازی SSL و HTTPS
✅ راهاندازی مانیتورینگ
اطلاع به گوگل و بازیابی SEO
2. Security & Manual Actions → Security Issues
3. کلیک روی “Request Review”
4. توضیح اقدامات انجام شده:
– پاکسازی کامل malware
– آپدیت تمام نرمافزارها
– تقویت امنیت
– نصب فایروال
5. ارسال درخواست
6. معمولاً 3-7 روز طول میکشد
نتیجهگیری: 12 تکنیک اصلی برای وبسایت هک شده
سوالات متداول از 12 تکنیک ضروری برای نجات وبسایت هک شده
1- چگونه بفهمم سایتم واقعاً هک شده یا فقط مشکل فنی دارد؟
برای تشخیص قطعی:
- سایت را در https://sitecheck.sucuri.net بررسی کنید
- Google Search Console را چک کنید (بخش Security Issues)
- لاگهای سرور را بررسی کنید
- فایلهای اخیراً تغییر یافته را پیدا کنید



