پاسخ کوتاه: امنیت وردپرس از کجا شروع می شود؟
پاسخ کوتاه: امنیت وردپرس یعنی بستن سه در ورودی؛ افزونه و قالب به روز، صفحه ورود محافظت شده، و نسخه پشتیبان سالم که بیرون از هاست نگه داری می شود. هسته وردپرس به تنهایی جای شکستن ندارد و بیشتر سایت هایی که هک می شوند از یک افزونه قدیمی یا یک رمز ساده خورده اند. اگر امروز فقط یک کار می توانید بکنید، به روزرسانی خودکار افزونه ها را روشن کنید.
سایت وردپرسی دارید و نمی دانید امنیت آن در چه وضعی است؟ این راهنما به پرسش «امنیت وردپرس چیست» کوتاه جواب می دهد و بعد به ترتیب اثر جلو می رود. اول می بینیم گناه اصلی گردن چه کسی است، بعد پنج بررسی می کنیم که خودتان در ده دقیقه تکرار می کنید، و آخرش می گوییم کدام بخش را واقعا باید به یک متخصص بسپارید.
آیا وردپرس امن است؟
وردپرس بدنام است و این بدنامی قدیمی شده. واقعیت این است که هسته وردپرس توسط تیم امنیتی رسمی نگه داری می شود و وصله های امنیتی آن سریع منتشر می شود. چیزی که سایت ها را می اندازد جای دیگری است: افزونه و قالبی که کسی به روزشان نمی کند، رمز عبوری که حدس زدنی است، و هاستی که نسخه قدیمی PHP روی آن نصب است.
عدد رسمی امروز این را نشان می دهد. طبق آمار رسمی وردپرس که نهم اکتبر ۲۰۲۶ اندازه گیری کردیم، نسخه پایدار وردپرس ۷٫۱٫۳ است؛ ولی تنها حدود ۶۱ درصد سایت ها روی شاخه ۷٫۱ هستند و نزدیک به چهل درصد روی نسخه های قدیمی تر مانده اند. یعنی مشکل اصلی «امنیت وردپرس» نیست، «به روز نکردن وردپرس» است. اگر سایت تازه راه اندازی کرده اید و می خواهید از پایه درست باشد، مراحل نصب وردپرس روی هاست را با همین نگاه امنیتی بخوانید.
گناه اصلی گردن کیست؟ چهار لایه آسیب پذیری
وقتی یک سایت وردپرسی هک می شود، تقریبا همیشه یکی از این چهار لایه باز مانده است. ترتیب زیر از پرتکرارترین به کم تکرارترین است و همان ترتیب اولویت کار شماست.
| لایه | شکل باز ماندن | نشانه در سایت شما |
|---|---|---|
| افزونه و قالب | نسخه ای که دیگر پشتیبانی نمی شود یا وصله امنیتی نگرفته | افزونه های غیرفعال و قدیمی که پاک نشده اند |
| رمز و صفحه ورود | رمز تکراری و ضعیف، ورود نامحدود، نام کاربری admin | در لاگ ورود، تلاش های پشت سر هم از یک نشانی |
| هاست و نسخه PHP | نسخه قدیمی PHP، جداسازی ضعیف بین سایت ها، پشتیبان نبودن | نسخه PHP در پنل هاست شما |
| دسترسی مدیر | کاربر غیرفعال یا قدیمی که هنوز دسترسی دارد | فهرست کاربران با نقش مدیر که نمی شناسید |
نکته ای که خیلی ها از دست می دهند این است که لایه اول با یک کلیک درست می شود و لایه چهارم تقریبا هیچ وقت بررسی نمی شود. با این حال بیشترین خرابی از لایه چهارم می آید؛ کاربری که سال پیش برای یک پروژه ساخته شده و هنوز می تواند وارد شود.
از نظر نوع حمله، بیش ترین چیزی که روی سایت های ایرانی می بینیم سه دسته است: تلاش پشت سر هم برای حدس زدن رمز، تزریق کد از راه فرم ها و آدرس ها، و از کار انداختن سایت با فرستادن حجم بالای درخواست. هیچ کدام از این سه با پنهان کاری حل نمی شود؛ همه با همان چهار لایه بالا بسته می شوند.
نُه کاری که واقعا امنیت را بالا می برد
این جدول بر اساس اثر واقعی مرتب شده، نه بر اساس شهرت. هر ردیف را که کنار بگذارید یک در ورودی بازتر می شود.
| # | کار | اثر | زمان لازم |
|---|---|---|---|
| ۱ | به روزرسانی خودکار افزونه، قالب و هسته | بالا | ۱۰ دقیقه یک بار تنظیم |
| ۲ | رمز یکتا برای هر کاربر و ورود دو مرحله ای برای مدیر | بالا | ۱۰ دقیقه |
| ۳ | محدود کردن تعداد تلاش ورود ناموفق | بالا | ۵ دقیقه |
| ۴ | پاک کردن افزونه و قالبی که استفاده نمی کنید | بالا | ۱۵ دقیقه |
| ۵ | بکاپ خودکار روزانه و بیرون از هاست | بالا | ۲۰ دقیقه |
| ۶ | حذف کاربران غیرفعال و کم کردن تعداد مدیران | متوسط | ۱۰ دقیقه |
| ۷ | نسخه PHP به روز روی هاست | متوسط | ۱۵ دقیقه |
| ۸ | گواهی SSL معتبر و انتقال خودکار به نسخه امن | متوسط | ۱۰ دقیقه |
| ۹ | افزونه امنیتی برای اسکن و فایروال | متوسط | ۲۰ دقیقه |
ترتیب بالا تصادفی نیست. چهار ردیف اول بیشترین آسیب را می بندند و اگر فقط یک ساعت وقت داشته باشید، همان چهار کار کافی است. افزونه امنیتی که همه از آن حرف می زنند، ردیف نهم است؛ مفید است، ولی جایگزین ردیف های بالاتر نمی شود.

سه مورد هم هست که در جدول نیامد چون به ابزار شما بستگی دارد: اسکن بدافزار به صورت دوره ای، غیرفعال کردن ویرایش فایل در کنترل پنل مدیریت، و اگر سایت تان پرداخت آنلاین دارد، تست نفوذ سالانه. برای سایت های کوچک این سه اختیاری اند و برای سایت هایی که اطلاعات کاربر نگه می دارند ضروری می شوند.
کارهایی که «امنیتی» به نظر می رسند ولی وقت تلف کردن اند
بخشی از توصیه هایی که در اینترنت می خوانید، فقط پیچیدگی اضافه می کند و اثر واقعی ندارد. سه موردش را ببینید تا وقت تان را برای کارهای موثر نگه دارید.
تغییر پیشوند جدول ها در دیتابیس. سال ها به عنوان یک کار امنیتی فروخته شده، ولی وقتی مهاجم به دیتابیس دسترسی داشته باشد، پیشوند جدول جلوی او را نمی گیرد. اثر واقعی آن نزدیک صفر است.
مخفی کردن نسخه وردپرس به تنهایی. اگر نسخه سایت شما را نشناسند، کمک می کند که فقط به صورت حاشیه ای؛ چون اسکنرها با یک فایل دیگر نسخه را می فهمند. عوض کردن این نسخه ها اولویت آخر است، نه اول.
بستن کلیک راست و کپی متن. هیچ اثری روی امنیت ندارد و فقط کاربر واقعی را اذیت می کند. این کار جلوی دزدیدن متن را نمی گیرد و جلوی هک را هم نمی گیرد.
در مقابل این ها، سه کاری که واقعا اثر دارند: نصب نکردن افزونه ای که به روزرسانی آن قطع شده، نساختن نقش مدیر برای کسی که فقط به محتوا نیاز دارد، و نگه داشتن دامین و سرویس ایمیل روی حساب شرکتی که همه به آن دسترسی ندارند.
در ده دقیقه سایت خودتان را بسنجید: پنج بررسی با دستور واقعی
لازم نیست منتظر کسی بمانید. این پنج بررسی را در ترمینال یا هر ابزار خط فرمانی که دارید اجرا کنید و نتیجه را ببینید. اگر ترمینال ندارید، همه این ها در پنل هاست و در گزارش افزونه امنیتی هم پیدا می شود.
بررسی اول، سربرگ های امنیتی سرور است. دستور curl زیر را اجرا کنید و ببینید کدام سربرگ برمی گردد. نبودن سربرگ Strict-Transport-Security یک نقطه ضعف رایج است.
curl -sI https://example.com \
| grep -iE 'strict-transport|x-frame|x-content'
بررسی دوم، لو رفتن فهرست کاربران است. وردپرس به صورت پیش فرض فهرست کاربران را باز می گذارد و مهاجم از همین جا نام کاربری مدیر را پیدا می کند. دستور زیر را بزنید؛ اگر نام کاربری برگشت، این نقطه را باید ببندید.
curl -s https://example.com/wp-json/wp/v2/users | head -c 200
بررسی سوم، صفحه ورود و فایل قدیمی xmlrpc است. هر دو نقطه ورود شناخته شده اند. دستور زیر را بزنید و کد پاسخ را ببینید؛ کد ۲۰۰ برای هر کدام یعنی آن در باز است.
curl -s -o /dev/null -w "%{http_code}\n" \
https://example.com/wp-login.php
curl -s -o /dev/null -w "%{http_code}\n" \
https://example.com/xmlrpc.php
بررسی چهارم، فهرست نگه داری نسخه پشتیبان است. بسیاری از سایت ها بکاپ روزانه دارند ولی هرگز بازگردانی آن را تمرین نکرده اند. یک بار روی یک نسخه آزمایشی بازگردانی کنید و زمان بگذارید؛ اگر بیش از یک ساعت طول کشید، بکاپ شما در روز حادثه کار نمی کند.
بررسی پنجم، فهرست کاربران با نقش مدیر و آخرین ورود آن هاست. هر کاربری که نمی شناسید باید امروز حذف یا به نقش پایین تر تغییر کند. این پنج بررسی روی هم ده دقیقه وقت می گیرد و تصویر روشنی از وضعیت سایت شما می دهد.

افزونه امنیتی: کدام، چند تا، و چه چیزی را نمی تواند بگیرد
افزونه امنیتی مفید است، به شرطی که به آن به عنوان لایه نهم نگاه کنید نه لایه اول. آمار رسمی مخزن وردپرس را امروز اندازه گیری کردیم تا انتخاب بر پایه عدد باشد نه تبلیغ.
| افزونه | نصب فعال | آخرین به روزرسانی | سازگاری گزارش شده |
|---|---|---|---|
| Wordfence | بیش از ۵ میلیون | ۳۰ سپتامبر ۲۰۲۶ | وردپرس ۷٫۱٫۳ |
| All In One WP Security | بیش از ۱ میلیون | ۱۷ سپتامبر ۲۰۲۶ | وردپرس ۷٫۱٫۳ |
| Solid Security | بیش از ۷۰۰ هزار | ۳۰ سپتامبر ۲۰۲۶ | وردپرس ۷٫۱٫۳ |
دو نکته مهم. اول اینکه یک افزونه امنیتی کافی است؛ نصب دو افزونه فایروال روی هم معمولا باعث تعارض و کندی می شود، نه امنیت بیشتر. دوم و مهم تر، چیزی که افزونه نمی تواند بگیرد: اگر هاست شما پشتیبان ندارد یا رمز شما در جای دیگری لو رفته، فایروال سایت کمکی نمی کند.
پس پیش از انتخاب افزونه، مطمئن شوید هاست شما امکانات پایه امنیتی را دارد؛ فهرست مشخصات هاست وردپرسی همین موارد را با عدد توضیح می دهد.
هزینه نگه داری این ابزارها تقریبا صفر است، ولی یک نکته مالی هم بگوییم. نسخه رایگان هر سه افزونه بالا برای سایت های کوچک کافی است؛ پلن پرداختی وقتی معنی دارد که اسکن زمان بندی شده و پشتیبانی بخواهید.
صفحه ورود و رمز عبور: سه کار با بیشترین اثر
لایه دوم بیشترین حمله ها را روی خود می بیند، چون نیازی به دانش فنی ندارد. سه کار زیر را به ترتیب انجام دهید.
اول، ورود دو مرحله ای (احراز هویت دو مرحله ای) برای همه کاربرانی که نقش مدیر دارند. با یک برنامه روی گوشی انجام می شود و جلوی بیشترین حالت لو رفتن رمز را می گیرد.
دوم، محدودیت تعداد تلاش ناموفق. با یک افزونه امنیتی تنظیم می شود و باعث می شود حمله حدس زدن رمز عملا بی فایده شود.
سوم، رمز یکتا برای هر کاربر. رمزی که در چند سایت استفاده شده باشد، با لو رفتن یک سایت دیگر همه جا بی فایده می شود. این سه کار بیشتر از هر تنظیم دیگری در پنل امنیتی ارزش دارند.
بکاپ: تنها چیزی که بعد از هک نجات می دهد
فایروال جلوی حمله را می گیرد، ولی وقتی سایت هک شد، آنچه نجات می دهد بکاپ سالم است. سه قاعده ساده که تفاوت را می سازد: روزانه گرفته شود، بیرون از هاست نگه داری شود، و بازگردانی آن حداقل یک بار تمرین شده باشد.
اگر بکاپ روی همان هاستی باشد که هک شده، با هم پاک می شود. اگر هم سی روز یک بار باشد، یک ماه کار از دست می رود. بررسی چهارم بخش قبل همین را می سنجید و جدی تر از آن چیزی است که به نظر می رسد.

اگر سایت هک شد: ترتیب کارها در بیست و چهار ساعت اول
در لحظه هک، بیشترین خسارت از کارهای شتابزده می آید. این ترتیب را رعایت کنید.
اول، عکس بگیرید. از صفحه ها، از فایل پلاگین های ناشناس و از کاربران جدید اسکرین شات بگیرید. این ها بعدا برای فهمیدن نقطه ورود لازم است.
دوم، دسترسی ها را ببندید. رمز همه کاربران مدیر را عوض کنید، کلیدهای امنیتی را بازتولید کنید و کاربران ناشناس را حذف کنید.
سوم، به هاست اطلاع دهید و بخواهید آی پی حمله را در لاگ بررسی کند. چهارم، از بکاپ سالم یک نسخه تازه بگیرید. فقط اگر این سه مرحله تمام شد سراغ پاک کردن فایل ها بروید؛ پاک کردن شتابزده معمولا مدرک را از بین می برد و نقطه ورود را نامعلوم می گذارد.
هاست و نسخه PHP: امنیتی که در افزونه نیست
هاست ارزان با نسخه قدیمی PHP، همان لایه سومی است که کمتر کسی بررسی می کند. آمار رسمی وردپرس امروز نشان می دهد حدود ۲۶ درصد سایت ها روی PHP ۸٫۳ هستند، حدود ۲۴ درصد روی ۸٫۲، و نزدیک به ۱۸ درصد هنوز روی ۷٫۴ یا قدیمی تر مانده اند. یعنی برای بخش بزرگی از سایت ها، یک ارتقای ساده نسخه PHP امنیتی بیشتر از هر افزونه ای می آورد.
برای اتصال امن هم اگر گواهی سایت تان تازه نیست یا انتقال خودکار به نسخه امن روی آن تنظیم نشده، مطلب گواهی SSL را ببینید؛ این یکی از همان سه کار متوسط جدول بالاست.
خودتان انجام بدهید یا بسپارید؟
این جدول را بر اساس زمان و ریسک بسته ایم تا تصمیم روشن باشد.
| کار | خودتان | بسپارید |
|---|---|---|
| به روزرسانی و پاک کردن افزونه های بی استفاده | بله | لازم نیست |
| رمز، ورود دو مرحله ای و فهرست کاربران | بله | لازم نیست |
| افزونه امنیتی و تنظیم اولیه آن | با راهنما | اگر وقت ندارید، سفارش دهید |
| نسخه PHP و تنظیم های سرور | خیر | بله |
| پاکسازی بعد از هک و پیدا کردن نقطه ورود | خیر | بله |
سه ردیف اول را واقعا خودتان می توانید انجام دهید و اگر انجام دهید، سطح امنیت سایت شما از بیشتر سایت های هم صنف بالاتر می رود. دو ردیف آخر دانش سرور می خواهد و اشتباه در آن ها خسارت را بیشتر می کند.
پایش ماهانه: چهار نشانه و یک دستور
امنیت کار یک روز نیست. این دستور ساده را ماهی یک بار اجرا کنید و کد پاسخ صفحه اصلی و صفحه ورود را با ماه قبل مقایسه کنید؛ تغییر ناگهانی کد پاسخ، اولین نشانه دستکاری است.
for u in https://example.com/ \
https://example.com/wp-login.php; do
d=$(date '+%F %H:%M')
c=$(curl -s -o /dev/null -w '%{http_code}' "$u")
echo "$d $c $u"
done
این چهار چیز را هم ماهی یک بار نگاه کنید: فهرست کاربران مدیر، فهرست افزونه ها برای پیدا کردن افزونه ای که به روزرسانی نگرفته، حجم فایل های هاست برای رشد بی دلیل، و وضعیت آخرین بکاپ.
اگر همه این ها را همین هفته انجام دهید و بعد ماهی یک بار تکرار کنید، سایت شما از بخش بزرگی از سایت های وردپرسی فارسی جلوتر است. برای سایت هایی که چند نفر پشت آن کار می کنند و امنیت برایشان جدی است، این کار را در قالب طراحی سایت در شیراز همراه با نگه داری ماهانه انجام می دهیم: دسترسی ها محدود می شوند، بکاپ آزمایشی گرفته می شود و گزارش ماهانه تحویل داده می شود. اگر سایت تان همین حالا مشکل دارد، پیش از هر چیز رمزها را عوض کنید و سراغ بکاپ بروید.

ارسال نظر جدید