پرش به محتوای اصلی
امنیت وردپرس

افزایش امنیت سایت وردپرسی

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

تیم امنیت رخنه‌کاو ۲۶ دقیقه مطالعه انتشار: آخرین بازبینی:

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

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

در این راهنما تمام اقداماتی را که برای بالا بردن امنیت وردپرس نیاز دارید، از روش‌های ساده تا تنظیمات حرفه‌ای‌تر بررسی می‌کنیم.


چرا افزایش امنیت سایت وردپرسی اهمیت دارد؟

یک سایت هک‌شده فقط با مشکل فنی مواجه نمی‌شود. نفوذ امنیتی می‌تواند به بخش‌های مختلف کسب‌وکار آسیب بزند.

برای مثال مهاجم ممکن است:

  • صفحات سایت را تغییر دهد؛
  • کاربران را به سایت دیگری Redirect کند؛
  • اطلاعات کاربران را سرقت کند؛
  • صفحات اسپم ایجاد کند؛
  • فایل مخرب روی هاست قرار دهد؛
  • حساب Administrator بسازد؛
  • ایمیل Spam ارسال کند؛
  • سئوی سایت را تخریب کند؛
  • سایت را از دسترس خارج کند؛
  • یا دسترسی دائمی برای خود ایجاد کند.

در بعضی موارد سایت همچنان در ظاهر عادی کار می‌کند و مدیر سایت هفته‌ها متوجه نفوذ نمی‌شود.

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


آیا وردپرس ذاتاً ناامن است؟

یکی از باورهای اشتباه این است که چون تعداد زیادی سایت وردپرسی هک می‌شوند، خود وردپرس سیستم ناامنی است.

واقعیت پیچیده‌تر است.

وردپرس یک اکوسیستم بزرگ دارد که شامل:

  • هسته وردپرس؛
  • قالب‌ها؛
  • افزونه‌ها؛
  • هاست؛
  • دیتابیس؛
  • حساب‌های مدیریتی؛
  • APIها؛
  • سرویس‌های جانبی

می‌شود.

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

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

بنابراین هنگام صحبت درباره افزایش امنیت سایت وردپرسی باید کل اکوسیستم را در نظر گرفت.


مهم‌ترین روش‌های افزایش امنیت سایت وردپرسی

مهم‌ترین روش‌های افزایش امنیت سایت وردپرسی

اقدامات امنیتی را بهتر است بر اساس اولویت انجام دهید. بعضی تنظیمات تأثیر بسیار بیشتری نسبت به تغییرات ظاهری یا روش‌های موسوم به Security Through Obscurity دارند.


۱. وردپرس را همیشه به‌روز نگه دارید

اولین قدم، ساده‌ترین قدم نیز هست.

نسخه‌های قدیمی وردپرس ممکن است شامل آسیب‌پذیری‌هایی باشند که در نسخه‌های جدید اصلاح شده‌اند.

هنگامی که یک مشکل امنیتی عمومی می‌شود، مهاجمان و ربات‌های خودکار می‌توانند اینترنت را برای پیدا کردن سایت‌هایی که هنوز Patch نشده‌اند Scan کنند.

بنابراین بهتر است:

  • نسخه اصلی وردپرس به‌روز باشد؛
  • افزونه‌ها مرتب آپدیت شوند؛
  • قالب فعال به‌روز باشد؛
  • قالب‌ها و افزونه‌های اضافی حذف شوند.

اگر سایت بسیار مهم یا پیچیده‌ای دارید، آپدیت‌ها را ابتدا در Staging آزمایش کنید و سپس روی سایت اصلی اعمال کنید.

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


۲. افزونه‌های بلااستفاده را حذف کنید

بعضی مدیران تصور می‌کنند Deactivate کردن افزونه کافی است.

اما افزونه غیرفعال همچنان فایل‌هایی روی سرور دارد.

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

قاعده مناسب این است:

اگر از افزونه‌ای استفاده نمی‌کنید، آن را حذف کنید.

همین موضوع درباره قالب‌های بلااستفاده نیز صدق می‌کند.

البته نگه داشتن یک قالب استاندارد وردپرس برای عیب‌یابی می‌تواند منطقی باشد؛ اما نیازی نیست ده‌ها قالب قدیمی در سایت باقی بمانند.


۳. هرگز از قالب و افزونه Nulled استفاده نکنید

یکی از پرریسک‌ترین تصمیم‌ها در مدیریت سایت استفاده از نسخه Nulled یا کرک‌شده قالب‌ها و افزونه‌های تجاری است.

فایل‌هایی که از منابع نامعتبر دریافت می‌شوند ممکن است از ابتدا شامل:

  • Backdoor؛
  • Web Shell؛
  • کد ارسال اطلاعات؛
  • Redirect؛
  • Spam Code؛
  • حساب مخفی مدیریتی

باشند.

مشکل اینجاست که ممکن است سایت ماه‌ها بدون مشکل ظاهری کار کند.

بنابراین صرف اینکه یک قالب Nulled بعد از نصب به‌درستی اجرا شده، ثابت نمی‌کند فایل سالم است.

برای افزایش امنیت وردپرس، قالب و افزونه را فقط از منابع معتبر دریافت کنید.


احراز هویت دومرحله‌ای و رمز عبور قوی

۴. از رمز عبور قوی و منحصربه‌فرد استفاده کنید

یکی از ساده‌ترین راه‌های نفوذ، سوءاستفاده از Credentialهای ضعیف یا لو رفته است.

رمزهایی مانند:

admin123

12345678

password

یا ترکیبی از نام و شماره تلفن به هیچ عنوان گزینه مناسبی نیستند.

رمز مناسب باید:

  • طول کافی داشته باشد؛
  • قابل حدس نباشد؛
  • برای همان سرویس استفاده شود؛
  • در سرویس دیگری تکرار نشده باشد.

نکته مهم‌تر این است که فقط رمز وردپرس اهمیت ندارد.

رمزهای زیر نیز باید قوی و جداگانه باشند:

  • هاست؛
  • ایمیل مدیر؛
  • FTP/SFTP؛
  • SSH؛
  • دیتابیس؛
  • Cloudflare؛
  • پنل دامنه.

اگر یک رمز را برای تمام این سرویس‌ها استفاده کنید، افشای یکی می‌تواند تمام زیرساخت را در معرض خطر قرار دهد.


۵. احراز هویت دومرحله‌ای را فعال کنید

فعال‌سازی Two-Factor Authentication یا 2FA یکی از مؤثرترین روش‌های افزایش امنیت سایت وردپرسی است.

در این روش حتی اگر مهاجم Password شما را در اختیار داشته باشد، برای Login به کد دوم نیز نیاز خواهد داشت.

برای حساب‌های زیر فعال کردن 2FA اهمیت بیشتری دارد:

  • Administrator وردپرس؛
  • هاست؛
  • ایمیل اصلی؛
  • Cloudflare؛
  • رجیسترار دامنه.

ترجیحاً از برنامه‌های تولید کد مانند Authenticator استفاده کنید.

SMS در نبود گزینه بهتر مفید است، اما روش‌های مبتنی بر Authenticator یا کلید امنیتی معمولاً انتخاب مناسب‌تری برای حساب‌های حساس محسوب می‌شوند.


۶. نام کاربری admin را تا حد امکان استفاده نکنید

وجود Username با نام admin به‌تنهایی باعث هک سایت نمی‌شود؛ اما در حملات Brute Force کار مهاجم را ساده‌تر می‌کند، زیرا نیمی از Credential را از قبل حدس زده است.

برای حساب مدیر از Username قابل پیش‌بینی استفاده نکنید.

بااین‌حال تغییر نام کاربری نباید به‌عنوان راهکار امنیتی اصلی در نظر گرفته شود.

رمز قوی، 2FA، Rate Limiting و جلوگیری از Loginهای خودکار اهمیت بسیار بیشتری دارند.


۷. تعداد تلاش‌های ورود را محدود کنید

ربات‌ها ممکن است هزاران ترکیب Username و Password را روی صفحه Login آزمایش کنند.

این حملات علاوه بر ریسک امنیتی می‌توانند منابع سرور را نیز مصرف کنند.

با استفاده از:

  • Rate Limiting؛
  • Firewall؛
  • Captcha در شرایط لازم؛
  • محدودیت Login Attempt

می‌توان حجم این درخواست‌ها را کاهش داد.

برای سایت‌های پرترافیک بهتر است این محدودیت در لایه Firewall یا CDN اجرا شود تا درخواست مخرب قبل از رسیدن به PHP متوقف شود.


۸. صفحه ورود وردپرس را محافظت کنید

صفحات زیر معمولاً برای ربات‌ها شناخته‌شده هستند:

/wp-login.php

و:

/wp-admin/

تغییر URL ورود می‌تواند حجم بعضی درخواست‌های خودکار را کاهش دهد، اما نباید آن را یک روش امنیتی اساسی بدانید.

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

بنابراین تغییر Login URL تنها یک لایه کمکی است و باید در کنار:

  • 2FA؛
  • رمز قوی؛
  • Rate Limiting؛
  • WAF

استفاده شود.


۹. از هاست امن استفاده کنید

امنیت وردپرس از داخل WordPress شروع نمی‌شود.

زیرساخت هاست نقش بزرگی دارد.

هنگام انتخاب هاست به موارد زیر توجه کنید:

  • نسخه‌های به‌روز PHP؛
  • ایزوله‌سازی حساب‌ها؛
  • Backup منظم؛
  • Firewall؛
  • Malware Detection؛
  • امکان فعال‌سازی 2FA؛
  • دسترسی SSH امن؛
  • ثبت Log؛
  • پاسخ‌گویی مناسب در Incidentهای امنیتی.

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

صرفاً ارزان بودن هاست نباید معیار انتخاب باشد.


۱۰. حتماً از HTTPS استفاده کنید

فعال بودن SSL و HTTPS یکی از ضروریات سایت‌های امروزی است.

HTTPS ارتباط بین مرورگر کاربر و سرور را رمزگذاری می‌کند و مانع مشاهده ساده اطلاعات در مسیر انتقال می‌شود.

اما یک نکته مهم:

داشتن SSL به معنی ضد هک بودن سایت نیست.

HTTPS نمی‌تواند یک افزونه آسیب‌پذیر را امن کند و جلوی Backdoor موجود روی سرور را نمی‌گیرد.

SSL فقط یکی از لایه‌های امنیت است.


بکاپ منظم؛ مهم‌ترین راه نجات بعد از هک

۱۱. به‌صورت منظم بکاپ بگیرید

Backup یکی از مهم‌ترین اجزای استراتژی امنیتی است.

اگر سایت آسیب ببیند، داشتن نسخه سالم می‌تواند زمان Recovery را به شکل قابل‌توجهی کاهش دهد.

اما Backup مناسب چند ویژگی دارد.

بکاپ باید خودکار باشد

تکیه بر حافظه مدیر سایت مناسب نیست.

بکاپ باید طبق زمان‌بندی مشخص انجام شود.

چند نسخه نگه دارید

فقط آخرین Backup کافی نیست.

ممکن است سایت دو هفته قبل آلوده شده باشد و شما تازه امروز متوجه شوید.

اگر تمام Backupهای قدیمی حذف شده باشند، آخرین نسخه نیز ممکن است آلوده باشد.

بکاپ خارج از سرور نگهداری شود

اگر Backup داخل همان هاست قرار داشته باشد و مهاجم دسترسی کامل به هاست پیدا کند، احتمال حذف یا تغییر Backup نیز وجود دارد.

بهتر است حداقل یک نسخه Off-site داشته باشید.


۱۲. فایل wp-config.php را محافظت کنید

فایل:

wp-config.php

یکی از حساس‌ترین فایل‌های وردپرس است.

اطلاعاتی مانند مشخصات اتصال دیتابیس در این فایل وجود دارد.

بنابراین:

  • Permission آن باید مناسب باشد؛
  • امکان مشاهده عمومی آن وجود نداشته باشد؛
  • Backupهای ساده این فایل در Public Directory باقی نمانند.

فایل‌هایی مانند:

wp-config.php.bak

یا:

wp-config-old.php

در صورت تنظیم اشتباه سرور می‌توانند خطرآفرین باشند.

نسخه‌های پشتیبان فایل‌های حساس را داخل مسیر عمومی سایت نگه ندارید.


۱۳. ویرایش فایل از داخل داشبورد وردپرس را غیرفعال کنید

وردپرس به‌صورت پیش‌فرض امکان ویرایش برخی فایل‌های قالب و افزونه را از داخل Dashboard فراهم می‌کند.

در بسیاری از سایت‌های Production نیازی به این قابلیت نیست.

می‌توانید در فایل wp-config.php مقدار زیر را اضافه کنید:

define('DISALLOW_FILE_EDIT', true);

این کار باعث می‌شود اگر حساب Administrator به خطر افتاد، مهاجم نتواند به‌راحتی از File Editor داخلی وردپرس برای تزریق کد استفاده کند.

البته این تنظیم جایگزین حفاظت از Account نیست.


۱۴. دسترسی فایل‌ها و پوشه‌ها را درست تنظیم کنید

Permission اشتباه می‌تواند سطح حمله را افزایش دهد.

تنظیم‌هایی مانند:

777

نباید بدون دلیل روی فایل‌ها یا دایرکتوری‌های سایت استفاده شوند.

در بسیاری از سرورها تنظیم عمومی متداول چیزی شبیه این است:

  • Directoryها: 755
  • Fileها: 644

اما Permission دقیق به معماری و تنظیمات سرور بستگی دارد.

بنابراین قبل از تغییر گسترده Permission، مستندات Hosting خود را بررسی کنید.

امنیت بیشتر به معنی بستن کورکورانه Permissionها نیست؛ تنظیم بیش‌ازحد محدود نیز ممکن است سایت را مختل کند.


۱۵. سطح دسترسی کاربران وردپرس را محدود کنید

یکی از اصول مهم امنیت:

Least Privilege

است.

هر کاربر فقط باید دسترسی لازم برای انجام کار خود را داشته باشد.

برای مثال نویسنده محتوا معمولاً نیازی به Administrator ندارد.

وردپرس Roleهای مختلفی ارائه می‌کند، از جمله:

  • Administrator؛
  • Editor؛
  • Author؛
  • Contributor؛
  • Subscriber.

هرچه تعداد حساب‌های Administrator کمتر باشد، سطح حمله نیز کوچک‌تر می‌شود.

همچنین کاربران قدیمی مربوط به کارکنانی که دیگر با مجموعه همکاری نمی‌کنند باید حذف یا غیرفعال شوند.


۱۶. حساب‌های کاربری را دوره‌ای بررسی کنید

هر چند وقت یک بار وارد:

Users → All Users

شوید.

بررسی کنید:

  • Administrator ناشناس وجود نداشته باشد؛
  • ایمیل کاربران تغییر نکرده باشد؛
  • سطح دسترسی غیرعادی ایجاد نشده باشد؛
  • حساب‌های قدیمی حذف شده باشند.

یکی از راه‌هایی که مهاجمان برای Persistence استفاده می‌کنند ایجاد حساب مدیر جدید است.

بنابراین بازبینی کاربران بخشی از مانیتورینگ امنیتی است.


۱۷. از Web Application Firewall استفاده کنید

WAF یا Web Application Firewall می‌تواند بسیاری از درخواست‌های مخرب را قبل از رسیدن به برنامه اصلی فیلتر کند.

برای مثال WAF می‌تواند در برابر الگوهای مشخصی از:

  • Bot Traffic؛
  • Brute Force؛
  • Injection؛
  • Requestهای مشکوک

لایه دفاعی ایجاد کند.

WAF ممکن است روی سرور، افزونه امنیتی یا سرویس‌های خارجی مانند CDN قرار داشته باشد.

نکته مهم این است که Firewall به معنی تضمین امنیت نیست.

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

WAF یک لایه اضافه است، نه جایگزین Patch.


چگونه سایت وردپرسی را در چند لایه امن کنیم؟

۱۸. افزونه امنیتی مناسب نصب کنید

افزونه‌های امنیتی می‌توانند امکانات مفیدی مانند:

  • Scan فایل؛
  • Firewall؛
  • Login Protection؛
  • گزارش تغییر فایل؛
  • Malware Detection؛
  • 2FA؛
  • Block IP

ارائه دهند.

از نمونه‌های شناخته‌شده می‌توان به ابزارهایی مانند Wordfence اشاره کرد.

اما چند نکته مهم وجود دارد.

نصب هم‌زمان چند افزونه امنیتی بزرگ ممکن است:

  • منابع زیادی مصرف کند؛
  • باعث Conflict شود؛
  • Ruleهای متناقض ایجاد کند.

یک راهکار امنیتی مناسب را انتخاب و درست تنظیم کنید.

افزونه‌ای که نصب شده اما هیچ‌وقت Alertهای آن بررسی نمی‌شود، ارزش محدودی دارد.


۱۹. فایل‌های سایت را برای تغییرات مشکوک مانیتور کنید

اگر فایل Core وردپرس بدون Update تغییر کند، باید دلیل آن مشخص شود.

File Integrity Monitoring می‌تواند تغییرات در فایل‌ها را گزارش دهد.

برای مثال اگر:

index.php

یا یکی از فایل‌های Core نیمه‌شب بدون Deploy یا Update تغییر کند، ارزش بررسی دارد.

این ویژگی به‌خصوص برای تشخیص سریع‌تر نفوذ اهمیت دارد.


۲۰. لاگ‌ها را بررسی کنید

Log یکی از باارزش‌ترین منابع در بررسی Incident است.

از جمله:

  • Access Log؛
  • Error Log؛
  • Authentication Log؛
  • Firewall Log.

بررسی آن‌ها ممکن است نشان دهد:

  • چه IPهایی Login ناموفق داشته‌اند؛
  • چه URLهایی هدف حمله بوده‌اند؛
  • چه زمانی فایل خاصی فراخوانی شده؛
  • حجم درخواست‌ها از کجا آمده است.

برای سایت‌های مهم بهتر است Logging بخشی از فرآیند امنیتی باشد، نه چیزی که فقط بعد از هک به سراغ آن بروید.


۲۱. XML-RPC را فقط در صورت عدم نیاز محدود کنید

یکی از توصیه‌هایی که زیاد در اینترنت دیده می‌شود این است که:

«XML-RPC را حتماً غیرفعال کنید.»

این توصیه برای همه سایت‌ها درست نیست.

برخی سرویس‌ها و قابلیت‌ها ممکن است به XML-RPC نیاز داشته باشند.

اگر از آن استفاده نمی‌کنید، محدود کردن آن می‌تواند سطح حمله را کاهش دهد.

اما بهتر است قبل از Disable کامل بررسی کنید که:

  • Jetpack؛
  • اپ موبایل؛
  • سرویس‌های خارجی

به آن نیاز ندارند.

قاعده مناسب این است:

قابلیتی که استفاده نمی‌شود و سطح حمله ایجاد می‌کند، محدود شود؛ نه اینکه بدون بررسی همه چیز غیرفعال شود.


۲۲. REST API را کورکورانه غیرفعال نکنید

REST API بخش مهمی از وردپرس مدرن است.

برخی افزونه‌ها، ویرایشگرها و برنامه‌ها به آن وابسته هستند.

غیرفعال کردن کامل REST API فقط با هدف افزایش امنیت می‌تواند بخش‌های مختلف سایت را خراب کند.

به‌جای آن:

  • Permissionها را درست تنظیم کنید؛
  • Endpointهای حساس را محافظت کنید؛
  • احراز هویت را بررسی کنید.

محدود کردن قابلیت موردنیاز معمولاً بهتر از Disable کامل زیرساخت است.


۲۳. اجرای PHP در پوشه Upload را محدود کنید

در بسیاری از سایت‌های وردپرسی، مسیر Upload برای ذخیره:

  • تصویر؛
  • ویدیو؛
  • PDF؛
  • فایل رسانه‌ای

استفاده می‌شود و به‌طور معمول نیازی به اجرای PHP در آن وجود ندارد.

اگر مهاجم از یک ضعف File Upload استفاده کند و بتواند PHP مخرب آپلود کند، جلوگیری از اجرای کد در این مسیر می‌تواند یک لایه دفاعی مؤثر ایجاد کند.

روش اجرای این محدودیت به وب‌سرور شما بستگی دارد.

برای Apache، Nginx و LiteSpeed تنظیمات متفاوتی وجود دارد.

قبل از اعمال Rule مطمئن شوید افزونه خاصی روی سایت برای اجرای PHP در Uploads وابستگی ندارد.


۲۴. افزونه و قالب را فقط از منبع معتبر دانلود کنید

حتی اگر فایل Nulled نباشد، دانلود افزونه از سایت‌های ناشناس خطرناک است.

یک فایل ZIP می‌تواند ظاهراً همان افزونه اصلی باشد اما کد اضافی داشته باشد.

بهتر است فایل‌ها را از:

  • WordPress.org؛
  • وب‌سایت رسمی توسعه‌دهنده؛
  • Marketplace معتبر

دریافت کنید.

در پروژه‌های سازمانی، کنترل منبع نرم‌افزار بخشی از Supply Chain Security است.


۲۵. از FTP ساده استفاده نکنید

FTP معمولی اطلاعات را بدون رمزگذاری مناسب انتقال می‌دهد.

در صورت امکان از:

SFTP

یا روش‌های امن دیگر استفاده کنید.

همچنین حساب‌هایی که دیگر نیازی به FTP/SFTP ندارند حذف شوند.

Passwordهای قدیمی را نیز دوره‌ای بازبینی کنید.


۲۶. دسترسی SSH را امن کنید

اگر سرور VPS یا Dedicated دارید، SSH یکی از نقاط بسیار حساس است.

اقدامات متداول شامل:

  • استفاده از SSH Key؛
  • محدود کردن Login؛
  • جلوگیری از استفاده غیرضروری از Root؛
  • Firewall؛
  • Fail2Ban یا Rate Limiting؛
  • به‌روزرسانی سیستم‌عامل

است.

اگر مدیریت سرور تخصص شما نیست، استفاده از Managed Hosting می‌تواند انتخاب امن‌تری نسبت به رها کردن VPS بدون Hardening باشد.


۲۷. پایگاه داده را امن نگه دارید

Database بخش حیاتی سایت است.

اطلاعاتی مانند:

  • کاربران؛
  • نوشته‌ها؛
  • تنظیمات؛
  • اطلاعات فروشگاه؛
  • Metadata

در آن قرار دارد.

برای افزایش امنیت دیتابیس:

  • Database User فقط Permission موردنیاز داشته باشد؛
  • دسترسی Remote غیرضروری بسته باشد؛
  • Password قوی باشد؛
  • Backup مناسب تهیه شود؛
  • phpMyAdmin بدون محافظت رها نشود.

دسترسی Database نباید بی‌دلیل از کل اینترنت باز باشد.


۲۸. تغییر Prefix دیتابیس را راهکار اصلی امنیت ندانید

گاهی گفته می‌شود تغییر:

wp_

به Prefix دیگری باعث امن شدن وردپرس می‌شود.

این کار ممکن است جلوی بعضی اسکریپت‌های بسیار ساده را بگیرد، اما دفاع اصلی در برابر SQL Injection نیست.

اگر Application دارای SQL Injection باشد، مهاجم حرفه‌ای معمولاً می‌تواند ساختار دیتابیس را شناسایی کند.

بنابراین تغییر Prefix می‌تواند یک اقدام جانبی باشد، اما جایگزین موارد مهم‌تری مانند:

  • Patch؛
  • Validation؛
  • WAF؛
  • به‌روزرسانی افزونه

نیست.


۲۹. Security Keys و Saltهای وردپرس را جدی بگیرید

وردپرس از Security Keys و Saltها برای کمک به امنیت Cookieها و Sessionها استفاده می‌کند.

این مقادیر داخل wp-config.php قرار دارند.

اگر احتمال می‌دهید سایت هک شده یا Sessionهای کاربران در معرض خطر بوده‌اند، تغییر Saltها می‌تواند باعث Invalid شدن Sessionهای فعلی شود.

این کار خصوصاً بعد از Incident امنیتی مفید است.

البته بعد از تغییر، کاربران باید دوباره Login کنند.


تمام Botها مخرب نیستند.

Googlebot و سایر Crawlerهای معتبر برای فعالیت سایت ضروری هستند.

اما بعضی Botها می‌توانند:

  • Login را Scan کنند؛
  • Vulnerabilityها را جستجو کنند؛
  • محتوا را Scrape کنند؛
  • منابع سایت را مصرف کنند.

استفاده از Rate Limit و Bot Management می‌تواند فشار درخواست‌های مخرب را کم کند.

Blocking گسترده بدون تحلیل ممکن است به SEO یا سرویس‌های قانونی آسیب بزند.


چک‌لیست افزایش امنیت سایت وردپرسی

امنیت ووکامرس چگونه افزایش پیدا می‌کند؟

اگر وردپرس شما فروشگاه اینترنتی است، حساسیت امنیت بالاتر می‌رود.

زیرا سایت ممکن است با:

  • اطلاعات مشتری؛
  • سفارش‌ها؛
  • آدرس‌ها؛
  • پرداخت؛
  • حساب کاربران

درگیر باشد.

برای سایت WooCommerce علاوه بر اقدامات قبلی باید روی چند مورد حساس‌تر باشید.

حساب‌های Administrator را محدود کنید

کارمند فروشگاه برای مدیریت سفارش الزاماً نباید دسترسی کامل Administrator داشته باشد.

Checkout را روی HTTPS نگه دارید

تمام مراحل Login، Cart، Checkout و Account باید از HTTPS استفاده کنند.

درگاه پرداخت را به‌روز نگه دارید

Plugin درگاه قدیمی می‌تواند ریسک ایجاد کند.

اطلاعات کارت را بدون ضرورت ذخیره نکنید

پردازش Payment بهتر است طبق معماری سرویس پرداخت و الزامات امنیتی انجام شود.


آیا Cloudflare امنیت وردپرس را افزایش می‌دهد؟

Cloudflare یا سایر CDN/WAFها می‌توانند لایه مفیدی برای امنیت ایجاد کنند.

قابلیت‌هایی مانند:

  • WAF؛
  • DDoS Protection؛
  • Rate Limiting؛
  • Bot Management

می‌توانند بسیاری از درخواست‌ها را قبل از رسیدن به Origin Server مدیریت کنند.

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

اگر IP اصلی سرور عمومی باشد یا افزونه سایت آسیب‌پذیر باشد، همچنان باید سایر لایه‌ها را ایمن کرد.


آیا مخفی کردن نسخه وردپرس امنیت را بالا می‌برد؟

مخفی کردن Version ممکن است مقدار کمی اطلاعات از مهاجمان بسیار ساده پنهان کند، اما یک راهکار جدی امنیتی نیست.

ابزارهای Fingerprinting معمولاً می‌توانند از روش‌های مختلف اطلاعاتی درباره CMS و اجزای سایت پیدا کنند.

اگر نسخه وردپرس آسیب‌پذیر باشد، راه‌حل صحیح:

Update

است، نه فقط مخفی کردن شماره نسخه.

این اصل در بسیاری از توصیه‌های امنیتی صدق می‌کند:

پنهان کردن مشکل جای اصلاح آن را نمی‌گیرد.


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

معمولاً نصب یک مجموعه امنیتی مناسب بهتر از نصب چهار یا پنج افزونه با قابلیت‌های مشابه است.

برای مثال اگر دو افزونه هم‌زمان:

  • Firewall؛
  • Login Limit؛
  • File Scan

انجام دهند، احتمال Conflict و افزایش مصرف منابع وجود دارد.

قبل از نصب افزونه مشخص کنید دقیقاً چه قابلیت‌هایی لازم دارید.


چگونه بفهمیم اقدامات امنیتی سایت مؤثر هستند؟

امنیت فقط انجام تنظیمات نیست؛ باید بتوانید نتیجه را ارزیابی کنید.

موارد زیر را دوره‌ای بررسی کنید:

  • Loginهای مشکوک؛
  • Administratorهای جدید؛
  • تغییر فایل‌ها؛
  • وضعیت Backup؛
  • افزونه‌های قدیمی؛
  • وضعیت SSL؛
  • Security Alertها؛
  • Search Console؛
  • Logهای سرور.

اگر بکاپ دارید ولی هرگز Restore آن را تست نکرده‌اید، هنوز مطمئن نیستید که هنگام بحران قابل استفاده است.

همین موضوع درباره سایر ابزارهای امنیتی نیز صدق می‌کند.


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

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

اقدامات فوری

در اولین مرحله:

  1. وردپرس را به‌روز کنید.
  2. تمام افزونه‌ها و قالب‌ها را Update کنید.
  3. افزونه‌های بلااستفاده را حذف کنید.
  4. Password مدیر را تغییر دهید.
  5. 2FA فعال کنید.
  6. Backup بگیرید.
  7. Administratorها را بررسی کنید.
  8. SSL را فعال کنید.

این اقدامات بخش بزرگی از مشکلات رایج را پوشش می‌دهند.


اقدامات سطح متوسط

بعد از آن:

  • WAF فعال کنید؛
  • Login Rate Limit تنظیم کنید؛
  • File Editing را ببندید؛
  • Permissionها را بررسی کنید؛
  • Backup Off-site ایجاد کنید؛
  • Malware Scan انجام دهید؛
  • Logging را فعال کنید.

اقدامات حرفه‌ای

برای سایت‌های مهم:

  • File Integrity Monitoring؛
  • Centralized Logging؛
  • Staging Environment؛
  • Vulnerability Monitoring؛
  • Incident Response Plan؛
  • سخت‌سازی Server؛
  • مانیتورینگ Uptime و Security؛
  • Review دوره‌ای دسترسی‌ها

را نیز در نظر بگیرید.


امنیت وردپرس و سئو چه ارتباطی دارند؟

امنیت مستقیماً یکی از پایه‌های سلامت سایت است.

هک شدن می‌تواند باعث ایجاد:

  • صفحات Spam؛
  • Redirect؛
  • لینک‌های مخرب؛
  • Titleهای جعلی؛
  • محتوای نامرتبط؛
  • هشدارهای امنیتی مرورگر

شود.

در چنین شرایطی هم اعتماد کاربران آسیب می‌بیند و هم عملکرد سایت در موتور جستجو ممکن است با مشکل مواجه شود.

بنابراین افزایش امنیت سایت وردپرسی فقط کار مدیر سرور نیست و بخشی از نگهداری سئو نیز محسوب می‌شود.

اگر سایت تعداد زیادی Landing Page و محتوای ارزشمند دارد، یک Incident امنیتی می‌تواند ماه‌ها فعالیت محتوایی را تحت تأثیر قرار دهد.


اشتباهات رایج در افزایش امنیت وردپرس

گاهی اقداماتی با هدف امنیت انجام می‌شوند اما نتیجه چندانی ندارند.

تمرکز فقط روی افزونه امنیتی

هیچ افزونه‌ای نمی‌تواند Password ضعیف، سرور قدیمی و قالب Nulled را هم‌زمان جبران کند.


نصب چند افزونه مشابه

امنیت بیشتر الزاماً مساوی با Plugin بیشتر نیست.


نادیده گرفتن Backup

امنیت فقط جلوگیری از حمله نیست؛ Recovery نیز بخشی از امنیت است.


استفاده از رمز مشترک

اگر Password وردپرس، هاست و ایمیل یکسان باشد، یک Data Breach می‌تواند چند حساب را هم‌زمان در معرض خطر قرار دهد.


به‌روزرسانی نکردن به دلیل ترس از خراب شدن سایت

راه‌حل این مشکل حذف Update نیست.

بهتر است:

  • Backup؛
  • Staging؛
  • تست قبل از Deploy

داشته باشید.


اعتماد بیش از حد به تغییر URL ورود

مخفی کردن /wp-login.php ممکن است درخواست‌های Bot را کاهش دهد، اما سایت دارای Vulnerability را امن نمی‌کند.


چک‌لیست افزایش امنیت سایت وردپرسی

برای بررسی سریع سایت، این موارد را کنترل کنید:

  • [ ] آخرین نسخه مناسب وردپرس نصب است.
  • [ ] افزونه‌ها به‌روز هستند.
  • [ ] قالب فعال به‌روز است.
  • [ ] افزونه‌های بلااستفاده حذف شده‌اند.
  • [ ] قالب Nulled وجود ندارد.
  • [ ] رمز مدیر قوی و منحصربه‌فرد است.
  • [ ] 2FA فعال شده است.
  • [ ] کاربران Administrator بازبینی شده‌اند.
  • [ ] Backup خودکار فعال است.
  • [ ] یک Backup خارج از هاست نگهداری می‌شود.
  • [ ] HTTPS روی کل سایت فعال است.
  • [ ] Login Attempt محدود شده است.
  • [ ] WAF یا Firewall مناسب فعال است.
  • [ ] Permission فایل‌ها صحیح است.
  • [ ] File Editor وردپرس در صورت عدم نیاز غیرفعال است.
  • [ ] FTP ساده با SFTP جایگزین شده است.
  • [ ] Logها در دسترس هستند.
  • [ ] Malware Scan دوره‌ای انجام می‌شود.
  • [ ] فایل‌های حساس محافظت شده‌اند.
  • [ ] سطح دسترسی کاربران بر اساس نیاز تنظیم شده است.
  • [ ] کامپیوتر مدیر سایت نیز ایمن و به‌روز است.

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


هر چند وقت یک‌بار امنیت وردپرس را بررسی کنیم؟

برای تمام اقدامات یک زمان‌بندی یکسان وجود ندارد.

به‌عنوان یک چارچوب عمومی:

روزانه یا خودکار

  • Backup؛
  • Uptime Monitoring؛
  • Alertهای امنیتی.

هفتگی

  • Updateها؛
  • Loginهای مشکوک؛
  • Administratorها.

ماهانه

  • بررسی افزونه‌های غیرضروری؛
  • تست Backup؛
  • مرور Logها؛
  • بازبینی Permissionها و دسترسی‌ها.

بعد از هر تغییر بزرگ

پس از نصب افزونه، مهاجرت سرور یا Deploy مهم، یک بررسی امنیتی جدید انجام دهید.


اگر سایت قبلاً هک شده، این اقدامات کافی هستند؟

اگر هک قبلاً اتفاق افتاده است، صرفاً Hardening سایت کافی نیست.

ابتدا باید Incident به‌طور کامل بررسی شود.

این فرآیند شامل:

  • تشخیص نقطه ورود؛
  • حذف Malware؛
  • بررسی دیتابیس؛
  • حذف Backdoor؛
  • بررسی کاربران؛
  • تغییر Credentialها؛
  • اصلاح Vulnerability

است.

اگر فقط Password را عوض کنید ولی Web Shell روی سرور باقی مانده باشد، مهاجم همچنان ممکن است دسترسی داشته باشد.

بنابراین پیشگیری و پاک‌سازی دو فرآیند متفاوت هستند.


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

بله.

بخش زیادی از امنیت به:

  • تنظیمات سرور؛
  • Update؛
  • Password؛
  • 2FA؛
  • Permission؛
  • Backup؛
  • دسترسی کاربران

مربوط است.

افزونه امنیتی کار مانیتورینگ و اجرای بعضی Ruleها را آسان‌تر می‌کند، اما الزاماً پایه امنیت نیست.

در سایت‌های بزرگ حتی ممکن است بسیاری از قابلیت‌های امنیتی در سطح Server، CDN و SIEM انجام شوند.


آیا وردپرس می‌تواند ۱۰۰ درصد ضد هک شود؟

خیر.

هیچ وب‌سایت متصل به اینترنت را نمی‌توان با اطمینان صددرصد «غیرقابل هک» دانست.

هدف امنیت این است که:

  • احتمال نفوذ کاهش یابد؛
  • شناسایی حمله سریع‌تر شود؛
  • میزان خسارت محدود شود؛
  • Recovery سریع باشد.

به همین دلیل بهترین معماری امنیتی چندلایه است.

اگر یک لایه شکست بخورد، لایه‌های دیگر باید بتوانند از گسترش حمله جلوگیری کنند.


مدل چندلایه برای امنیت وردپرس

یک سایت امن را می‌توان مانند چند حلقه دفاعی تصور کرد.

لایه اول: زیرساخت

هاست، سرور، سیستم‌عامل و Firewall.

لایه دوم: شبکه

CDN، WAF، Rate Limiting و DDoS Protection.

لایه سوم: Application

وردپرس، افزونه و قالب.

لایه چهارم: احراز هویت

Password، 2FA و مدیریت Session.

لایه پنجم: اطلاعات

Backup، دیتابیس و کنترل دسترسی.

لایه ششم: تشخیص

Logging، Monitoring و Alert.

وجود این لایه‌ها باعث می‌شود شکست یک بخش الزاماً به تصاحب کامل سایت منجر نشود.


سوالات متداول درباره افزایش امنیت سایت وردپرسی

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

یک اقدام واحد به‌عنوان بهترین روش وجود ندارد. به‌روزرسانی وردپرس و افزونه‌ها، استفاده از رمز قوی، فعال‌سازی 2FA، بکاپ منظم، محدود کردن دسترسی کاربران و استفاده از Firewall در کنار یکدیگر بیشترین تأثیر را دارند.


آیا افزونه امنیتی برای وردپرس ضروری است؟

الزامی نیست، اما می‌تواند بسیاری از کارهای امنیتی مانند Malware Scan، File Monitoring، Login Protection و Firewall را ساده‌تر کند. امنیت سایت نباید فقط به افزونه وابسته باشد.


آیا تغییر آدرس wp-admin جلوی هک را می‌گیرد؟

خیر. تغییر آدرس Login ممکن است حجم Botهای ساده را کاهش دهد، اما اگر سایت آسیب‌پذیری دیگری داشته باشد مانع هک نمی‌شود. 2FA، Update و WAF اهمیت بیشتری دارند.


آیا Cloudflare جلوی هک وردپرس را می‌گیرد؟

Cloudflare می‌تواند با WAF، Rate Limiting و Bot Protection لایه امنیتی مفیدی ایجاد کند، اما نمی‌تواند تمام مشکلات امنیتی داخل وردپرس را برطرف کند. افزونه‌های آسیب‌پذیر و Credentialهای ضعیف همچنان باید اصلاح شوند.


آیا SSL باعث امنیت کامل سایت می‌شود؟

خیر. SSL فقط ارتباط بین کاربر و سرور را رمزگذاری می‌کند. سایت HTTPS همچنان می‌تواند از طریق آسیب‌پذیری نرم‌افزاری یا Password لو رفته هک شود.


برای امنیت وردپرس هر چند وقت یک بار بکاپ بگیریم؟

به میزان تغییر سایت بستگی دارد. فروشگاه یا سایت خبری ممکن است به Backup روزانه یا حتی کوتاه‌تر نیاز داشته باشد، درحالی‌که سایت کم‌تغییر می‌تواند زمان‌بندی متفاوتی داشته باشد. مهم‌تر از تعداد Backup، وجود چند نسخه سالم و Off-site است.


آیا غیرفعال کردن XML-RPC ضروری است؟

خیر. اگر سرویس شما به XML-RPC نیاز ندارد، محدود کردن آن می‌تواند سطح حمله را کاهش دهد. اما بعضی قابلیت‌ها ممکن است به آن وابسته باشند؛ بنابراین قبل از Disable کامل بررسی کنید.


افزونه‌های قدیمی حتی اگر غیرفعال باشند خطر دارند؟

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


چطور بفهمیم سایت وردپرسی امن است؟

امنیت را نمی‌توان فقط از ظاهر سایت تشخیص داد. Updateها، کاربران، فایل‌ها، Backup، Logها، WAF و تنظیمات سرور باید بررسی شوند. همچنین هیچ بررسی‌ای تضمین دائمی ایجاد نمی‌کند و مانیتورینگ باید ادامه داشته باشد.


اگر سایت هک شد اول چه کاری انجام دهیم؟

ابتدا باید نفوذ مهار و وضعیت سایت حفظ شود، سپس نقطه ورود، فایل‌های آلوده، Database، کاربران و Backdoorها بررسی شوند. بعد از پاک‌سازی، Credentialها تغییر کرده و آسیب‌پذیری اصلی اصلاح می‌شود.


جمع‌بندی

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

اگر بخواهیم مهم‌ترین اقدامات را خلاصه کنیم، اولویت با این موارد است:

به‌روزرسانی منظم، استفاده نکردن از افزونه و قالب نامعتبر، رمزهای قوی، احراز هویت دومرحله‌ای، بکاپ خارج از سرور، محدود کردن حساب‌های Administrator، استفاده از WAF و مانیتور کردن تغییرات سایت.

در مقابل، اقداماتی مانند مخفی کردن نسخه وردپرس یا تغییر Prefix دیتابیس می‌توانند در برخی شرایط یک لایه کوچک ایجاد کنند، اما نباید جای راهکارهای اصلی را بگیرند.

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

مهم‌ترین هدف این نیست که ادعا کنیم سایت «غیرقابل هک» شده است. هدف ایجاد شرایطی است که نفوذ دشوارتر شود، رفتار مشکوک سریع‌تر تشخیص داده شود و در صورت بروز مشکل بتوان سایت را در کوتاه‌ترین زمان ممکن به وضعیت سالم بازگرداند.

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

مطالب مرتبط