«یک افزونۀ امنیتی نصب کردم، خیالم راحت است.» و بعد سه ماه، همان سایت هک می‌شود؛ نه به‌خاطر افزونه، به‌خاطر این‌که امنیت، افزونه نیست؛ عادت است. من در پروژه‌هایی که post-mortemشان را نوشته‌ام، تقریباً هیچ‌وقت ندیده‌ام هکر از یک حفرۀ کوانتومی وارد شود؛ همیشه یکی از این سه در باز بوده: پسوردِ ضعیف یا کاربرِ فراموش‌شده، فایلِ هسته/قالبِ دست‌کاری‌شده از یک منبع نامعتبر، و بکاپی که برای بازیابی آماده نبود. افزونۀ امنیتی در این میان، نگهبانِ خوبِ خانه است — ولی نگهبان، دربِ باز را نمی‌بندد. در این مقاله، «بهترین افزونه‌های امنیتی وردپرس» را لیست می‌کنم، ولی اول نقشۀ لایه‌ها را می‌دهم تا بدانید هر کدام کدام در را می‌پایند؛ و در پایان، همان چیزی را می‌گویم که هیچ افزونه‌ای در صفحه‌اش وعده نمی‌دهد: اثرِ خودِ افزونه‌های امنیتی روی سرعت سایت.

امنیت چهارلایه است، نه افزونه‌ای

قبل از معرفی هر محصول، چهار لایه را بشناسید؛ هر افزونۀ امنیتی فقط در یک یا دو لایه حرفی برای گفتن دارد: لایۀ ورودی (لاگین، کاربرها، رمزها)، لایۀ ترافیک (فایروال، بات‌ها، حمله)، لایۀ فایل و دیتابیس (اسکن بدافزار، سخت‌سازی wp-config و مجوزها)، و لایۀ بازیابی (بکاپ و لاگِ رویداد). در راهنمای امنیت وردپرس برای مبتدیان همین نقشه را گام‌به‌گام باز کرده‌ام؛ این مقاله، نسخهٔ خریدِ همان نقشه است. و از همان اول یک اصل را روشن کنم: هیچ‌کدام از این افزونه‌ها، جایِ «منبعِ مطمئن» را نمی‌گیرند؛ قالب یا افزونۀ نالِ دانلودشده، همان لحظهٔ نصب، از تمام فایروال‌هایتان عبور می‌کند. معیارهای شناختِ فایلِ امن را در دانلود افزونۀ مطمئن نوشته‌ام — و عجیب‌ترین الگویی که در پاکسازی‌ها دیده‌ام، سایت‌هایی هستند که Wordfence فعال داشتند و پوستۀ نال روی‌شان نصب بود؛ دزد را نگهبان بیرون نگه می‌دارد، ولی وقتی دعوتش کرده باشید، کلید دستِ خودش است.

افزونۀ امنیتی، ضریبِ امنیت است نه علتِ امنیت؛ علت، رفتارِ صاحب سایت است — آپدیتِ به‌موقع، رمزِ یکتا، و منبعِ خرید.

۱. Wordfence: آتش‌نشانیِ همه‌چیز تمام

پرطرفدارترین انتخاب در جامعهٔ وردپرس و در مخزن، میلیون‌نصبی. دلیلِ محبوبیتش روشن است: در یک بسته، هم فایروالِ نرم‌افزاری دارد که ترافیکِ مخرب را پیش از رسیدن به وردپرس غربال می‌کند، هم اسکنر بدافزار که فایل‌های هسته، قالب و افزونه‌ها را با نسخهٔ اصلی مقایسه می‌کند (الگوی تشخیصیِ جالبی: «این فایل باید این‌جا این‌قدر بایت باشد؛ نیست = دست‌خورده»)، هم محدودسازیِ تلاشِ لاگین. نسخهٔ رایگانش برای اکثر سایت‌های کوچک کافی است؛ نسخهٔ پولی، فایروالِ مدیریت‌شده با قوانین به‌روز و اسکنِ زنده می‌دهد. اما دو تذکر از تجربهٔ من: اول، Wordfence روی هاستِ اشتراکیِ ضعیف می‌تواند خودش به گلوگاه تبدیل شود — بحثش در بخشِ سرعتِ همین مقاله؛ دوم، قوانینِ فایروالش اگر بدونِ بررسی فعال شوند، رباتِ گوگل یا کاربرِ پشتِ IP اشتراکی را هم می‌بندند؛ بعدِ سه‌روز، صاحب سایت به من زنگ می‌زند که «سایت را گوگل نیامده». تنظیمِ درستش را در راهنمای محافظت در برابر هکرها گام‌به‌گام آورده‌ام؛ همان مسیرِ «چک‌لیستِ امنیتیِ بعد از نصب» که در راهنمای امنیت مبتدی‌ها هم تکرار کرده‌ام.

۲. Solid Security (iThemes): نظافتچیِ منظم

قدیمی‌های بازارش این نام را با iThemes می‌شناسند؛ برند تغییر کرد، رویکرد نه: به‌جای فایروالِ درون‌سروریِ سنگین، روی سخت‌سازیِ پیکربندی تمرکز دارد. ویزاردِ «Hardening»ش، کارهایی را که دستی باید در wp-config.php و مجوزها انجام دهید با یک تیک انجام می‌دهد؛ و بخشِ Two Factor و محدودسازیِ لاگینش تمیز و کم‌دردسر است. در پروژهٔ شرکتی‌ای که ترافیکِ کارمندانِ پرتعداد داشتیم، Solid روی لاگین (IP allowlist + 2FA گروهی) درخشان عمل کرد. نقطهٔ ضعف: اسکنرِ بدافزارِ نسخهٔ رایگانش به‌عمقِ Wordfence نیست — برای لایۀ «فایل دست‌خورده»، یک اسکنرِ تکمیلی لازم دارید؛ فهرست ابزارهای اسکن را در بهترین ابزارهای اسکن بدافزار جدا بررسی کرده‌ام.

۳. Sucuri: نگهبانِ بیرونی

Sucuri فلسفهٔ متفاوتی دارد: بجای اینکه فقط داخلِ وردپرس را نگاه کند، یک لایهٔ ابری جلوی سایتتان می‌گذارد — DNS سایت به پروکسی آن‌ها هدایت می‌شود، ترافیکِ مخرب پیش از رسیدن به سرورِ شما غربال می‌شود، و اگر سایت آلوده شد، تیمِ پاکسازی‌شان هم جزئی از سرویس پولی است. در سناریوی «سایتِ خبریِ پُرتیک‌آف با ترافیکِ سیل‌آسا» که تحملِ downtime ندارد، این معماری بیرونی ارزشِ پولش را درمی‌آورد — چون بارِ فیلترینگ از دوشِ PHPِ شما برداشته می‌شود. دو تذکر: اول، لایۀ ابری یعنی یک واسطهٔ تازه در مسیر کاربر تا سرور؛ اگر کش/SSL را ندانید تنظیم کنید، با پیکربندیِ غلطِ «IP واقعیِ کاربر» یا سشن‌ها کلنجار می‌روید. دوم، نسخهٔ رایگانِ اسکنرِ وب‌پایه‌اش ابزارِ خوبی برای «چکِ دوم» است، ولی فایروالش پولی‌ست. وقتی از لایۀ ابری یا فایروالِ سخت‌افزاریِ جایگزین حرف می‌زنیم، مقایسۀ مفهوم «فایروالِ ابری vs درون‌سروری» در این مقاله تصمیم را شفاف می‌کند.

۴. لایۀ لاگین: محدودسازی + 2FA

آمارِ حملاتِ وردپرس که در پست‌مورتیم‌ها می‌بینم، بی‌رقیب به یک نقطه برمی‌گردد: wp-login.php؛ یا حدسِ رمز (brute force) یا دزدیدنِ سشن. پس مستقل از افزونهٔ انتخابی، دو کار الزامی است. اول: محدودسازی تلاش لاگین — پنج تلاشِ خطا، ده دقیقه قفل؛ همین. ابزارهایش را در راهنمای «جلوگیری از حملات بروت‌فورس» و افزونه‌های امنیت لاگین آورده‌ام و مسیرِ دستیِ امن‌سازیِ صفحهٔ ورود در امن‌سازی لاگین ادمین. دوم: 2FA — رمزِ دوفاکتوری، حتی برای سایتِ شخصی؛ «رمزِ قوی + رمزِ دومِ تلفنی» تقریباً غیرقابل‌عبور است، آن‌طور که در تأثیر 2FA بر امنیت و فعال‌سازی 2FA برای کاربران وردپرس نوشته‌ام. یک هشدارِ واقع‌بینانه که کسی در مقالات معرفی نمی‌دهد: 2FA روی سایتِ «مدیرانِ كثيرة» بدونِ برنامهٔ بازیابی (رمزِ پشتیبان، SMSِ جایگزین)، صبحِ شنبه یعنی «هیچ‌کس نمی‌تواند وارد پیشخوان شود»؛ قبل از فعال‌سازی، سناریوی گم‌شدنِ گوشی را با تیم تمرین کنید.

۵. بکاپ: افزونۀ امنیتیِ فراموش‌شده

شمارۀ پنجمِ من، رسماً افزونۀ امنیتی نیست ولی در هر حادثه‌ای، تنها چیزی‌ست که کسبوکار را نجات می‌دهد: بکاپِ آفلاینِ تست‌شده. وقتی بدافزار، سایت را باج‌ده (ransomware) یا پاک کرد، فایروال و اسکنر هیچ‌کدام فایلِ سالمِ دیروزِ شما را پس نمی‌دهند؛ اما یک بکاپِ بیرون‌سروری، بله. روشِ درستش را در راهنمای بکاپ وردپرس و فهرست ابزارهایش در بهترین افزونه‌های بکاپ آورده‌ام؛ برای فروشگاه‌ها که هر ساعتِ خرابی یعنی سفارشِ از‌دست‌رفته، نسخهٔ اختصاصی‌اش در بکاپ ووکامرس هست. قانونِ سه‌نسخهٔ من: دو نسخه در دو جای جغرافیاییِ متفاوت (یکی بیرونِ هاست: Object Storage، گوگل‌درایو، هرچه)، یک نسخه هر ماه «بازگردانیِ آزمایشی» شود؛ بکاپی که بازگردانی‌اش تمرین نشده، فقط فایلِ سنگینِ دیروز است.

در حادثۀ واقعی، سه چیز اهمیت دارد: بکاپ، بکاپ، و اینکه بکاپ را تست کرده باشید. بقیه، سرعتِ فهمیدنِ حادثه است.

هزینهٔ پنهان: امنیتِ سنگین روی هاستِ اشتراکی

حالا حلقه‌ای که بین «امنیت» و «سرعت» کشیده می‌شود و هر دو اردوگاه معمولاً انکارش می‌کنند: افزونه‌های امنیتیِ درون‌سروری، در هر درخواست، کدِ PHP اجرا می‌کنند — بررسی IP، مقایسه‌امضای فایل، نوشتنِ لاگ. Wordfence روی هاستِ اشتراکیِ ضعیف، در پروژه‌هایی که سنجیده‌ام، ۵ تا ۱۵ درصدِ CPUِ سایت را صرف خود می‌کرد؛ یعنی همان سایتی که «امن» به نظر می‌رسید، در کمپینِ ترافیک، ۵۰۳ می‌داد. راه‌حل، حذفِ امنیت نیست؛ مهندسی‌اش است: اسکنِ زمان‌بندی‌شده (نیمه‌شب، نه real-time)، قوانینِ فایروالِ کم‌حجم و هدفمند، و اگر بودجه هست: فایروالِ ابری بیرون‌سروری یا فایروالِ سطحِ سرور (UFW) که اصلاً به PHP نمی‌رسد. اصولِ سنجش را در تأثیر افزونه‌ها بر سرعت و پروتکلِ کاهش مصرف منابع هاست نوشته‌ام. و یک تصمیمِ معماریِ صادقانه: گاهی درست‌ترین «افزونۀ امنیتی»، نبودنِ افزونه است — قفل‌کردنِ wp-config، بستنِ ویرایشگرِ فایلِ پیشخوان، و آپدیتِ خودکارِ امنیتی، بخشِ بزرگی از نیاز را بی‌هیچ کدِ اضافی پوشش می‌دهند؛ راهنمای عملیِ اولی را جدا نوشته‌ام.

استک پیشنهادی من برای سه سناریو

به‌جای «یک برنده معرفی کن»، سه ترکیبِ آزموده‌شده می‌دهم — هرکدام روی سه محورِ «بودجه × ترافیک × تیم»:

  • سایت شخصی/وبلاگ (بودجۀ صفر): Solid Security برای hardening و 2FA + بکاپِ خودکارِ رایگان روی فضای ابریِ شخصی. فایروالِ ابریِ رایگانِ Cloudflare جلوی بیشترِ brute force را بیرونِ سرور می‌گیرد. تمام. سبک و بی‌دردسر.
  • سایت شرکتی (بودجۀ متوسط): Wordfence رایگان (اسکنِ هفتگی + محدودسازیِ لاگین) + افزونۀ لاگِ فعالیت برای پاسخِ سوالِ «کی چه‌کار کرد؟». یک‌بار در ماه: خروجیِ head و فایل‌های هسته را با «مقایسه‌امضا» چک کنید؛ اسکنِ خودکار کسل‌کننده می‌شود، چشمانِ انسان نه.
  • ووکامرس/پُرتراک (بودجۀ جدی): فایروالِ ابریِ پولی (Sucuri یا Cloudflare Pro) بیرونِ سرور + اسکنرِ درونِ Wordfence + بکاپِ real-time بیرونِ دیتابیس + 2FA اجباری برای تمامِ نقشه‌های با دسترسیِ سفارش. امنیتِ فروشگاه را در امن‌سازی ووکامرس جدا باز کرده‌ام.

نکتهٔ طلاییِ هر سه سناریو: افزونه‌های امنیتیِ چندتایی روی هم، امنیتِ دوچندان نمی‌سازند، تضادِ سه‌برابر تولید می‌کنند — دو فایروال که همدیگرِ IP-list را نمی‌بینند، یک‌روز کاربرِ واقعی را به‌خاطرِ «رفتار مشکوکِ افزونۀ دیگر» می‌بندند. یک نگهبانِ قوی در هر لایه، بهتر از دو نگهبانِ دعوا‌کرده است.

ساعتِ صفر: اگر همین الان هک شدید، پنج حرکتِ اول

هیچ‌کس دوست ندارد به این بخش نیاز پیدا کند، ولی من همیشه آن را برای خودم نگه می‌دارم؛ چون در حادثه، بدترین دشمن «واکنشِ آهسته» است. فرض کنید همین الان متوجه صفحه‌تبدیل‌شده یا ریدایرکت مشکوک شده‌اید: یک: سایت را در حالت «تعمیرات» بگذارید نه خاموشِ کامل؛ بازدیدکننده باید بداند مشکل آگاهانه است، وگرنه اعتمادِ برند با یک صفحه‌ی سفید می‌میرد. دو: اگر دسترسیِ ادمین را بسته‌اند، از طریق FTP یا پنلِ هاست، فایل functions.php قالبِ فعال و اسکریپت‌های مشکوکِ تازه در uploads را موقتاً غیرفعال کنید؛ روشِ درست و ایمنِ این‌کار را در راهنمای «پاکسازیِ ایمنِ بدافزار» با جزئیات آورده‌ام. سه: قبلِ هر اقدامِ ویرایشی، یک بکاپِ فوریِ همین «لحظه‌ی جرم» بگیرید؛ بله، نسخه‌ی آلوده — برای تحلیلِ اینکه «از کجا آمد»، بعداً به‌دردتان می‌آید. چهار: با ابزارِ اسکنِ بیرونی چک کنید دامنه‌تان در لیست‌سیاه نیست؛ اگر هست، درخواستِ حذف‌تان تا پاکسازیِ کامل بی‌معنی است. پنج: بعد از پاکسازیِ کامل (نه قبلش!) همه‌ی رمزها و کلیدهای API را عوض کنید؛ بدافزارِ در‌حال‌اجرا، رمزِ تازه را هم می‌دزدد — ترتیبِ این پنج حرکت، مرزِ بین «امروز درست شد» و «دو هفته دیگر دوباره هک شدیم» است. اگر تازه با مفهومِ بدافزارِ وردپرس آشنا می‌شوید، اینکه اصلاً از کجا وارد می‌شود را در بدافزار چیست و چطور وارد می‌شود نوشته‌ام — اگر قبلِ حادثه بخوانیدش، نصفِ راهِ پیشگیرانه را رفته‌اید. و برای بستنِ حلقه: پایشِ آپ‌تایمِ خارجی، همان چیزی‌ست که زودترِ شما فهمیدنِ «سایتِ من پایین است» را ممکن می‌کند؛ اگر هاست‌تان این را ندارد، سرویسِ مانیتورینگِ رایگانِ خارجی + یک اسکرین‌شاتِ روزانه‌ از «فایل‌های تازه» پوشه‌ی ریشه، ساده‌ترین سیستمِ هشدارِ خانگی است.

چهار باورِ غلطِ امنیتی

  • «تغییرِ آدرسِ لاگین امن است» — امنیتِ ازطرحِ تاریکی نیست؛ اسکنرهای رباتیک هر روز دامنه را می‌خوانند و مسیرهای معروف را تست می‌کنند؛ تغییرِ URL فقط آزارِ خودتان است. رمزِ قوی + 2FA، همان درِ واقعی است.
  • «هاستم امن است، پس سایت امن» — هاست، لایۀ فیزیک و شبکه است؛ وردپرس روی سرورِ کاملاً امن هم با افزونۀ آسیب‌پذیر هک می‌شود. مسئولیتِ اپلیکیشن با شماست.
  • «کسی حمله نمی‌کند چون سایتم کوچک است» — ربات‌ها هدف‌گزینی نمی‌کنند؛ کلِ اینترنت را جارو می‌زنند. سایتِ شخصیِ شما برای می‌زبانگ (cryptomining) و IP-perimeter همان‌قدر می‌ارزد که سایتِ شرکتی.
  • «وقتی هک شدم پاکش می‌کنم» — پاکسازیِ بدونِ دانش یعنی بدافزارِ نیمه‌پاک‌شده که هفته‌بعد برمی‌گردد؛ تجربهٔ واقعیِ این چرخه را در راهنمای پاکسازیِ سایتِ هک‌شده و مطالعۀ موردیِ فروشگاهِ آلوده نوشته‌ام — و باور کنید، هیچ‌کدام از آن مقاله‌ها، هزینه‌شان کمتر از پیشگیری نبود.

نشانه‌های که «دیر فهمیدن» را هم جدی بگیرید: بازدیدِ غیرعادیِ PageSpeed در ربات‌تحلیل، فایل‌های تازه در uploads که نساخته‌اید، ریدایرکت‌های پنهان در موبایل. فهرستِ کامل‌شان در علائمِ آلودگیِ وردپرس هست.

جمع‌بندی

«بهترین افزونۀ امنیتی وردپرس» یک عدد نیست، ترکیبِ متناسبِ چهار لایه است: ورودی (لاگینِ محدودشده + 2FA)، ترافیک (فایروالِ درون یا ابری)، فایل (اسکنرِ مقایسه‌امضا + hardeningِ دستی)، و بازیابی (بکاپِ تست‌شده). Wordfence کامل‌ترینِ درون‌سروری است، Solid منظم‌ترینِ سخت‌ساز، Sucuri بهترینِ لایۀ بیرونی — و هیچ‌کدام بدونِ بکاپ و منبعِ خریدِ امن، ارزشِ تیکتِ پشتیبانی هم ندارند. اولین قدمِ امشب‌تان: اسکرین‌شاتِ صفحهٔ «کاربران» وردپرس را باز کنید و هر حسابِ ناشناس یا مدیرِ فراموش‌شده را همین حالا حذف کنید؛ این کارِ بی‌افزونه، پُرتکرارترین ورودیِ هک را می‌بندد. دو قدمِ بی‌افزونۀ دیگر هم امشب ممکن است: نسخهٔ وردپرس، قالب و افزونه‌ها را به‌روز کنید (آپدیتِ معوق، شایع‌ترین حفرۀ گزارش‌شده است) و یک رمزِ عبورِ منحصربه‌فرد برای حسابِ ادمین بگذارید — همان اصلِ «رمزِ یکتا» که در اصولِ مدیریتِ رمزِ عبور توضیحش داده‌ام. امنیتِ مقدماتی، بی‌هزینه است؛ فقط بی‌برنامه است. اگر سناریوی امنیتیِ خاصی دارید — سایتِ چند‌مدیره، عضویت‌دار، چندزبانه — در دیدگاه بنویسید؛ استک‌هایِ موردی را در مقالاتِ بعدی باز می‌کنم. 🛡️