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

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

گیت دهدقیقهای پیش از انتشار، هشت چک را در یک برگه جمع میکند: فهرست کاربران و نقشها مرور شد؛ تأیید دومرحلهای برای ادمینها روشن است؛ افزونههای بلااستفاده حذف شدند؛ منبع افزونههای تازه بررسی شد؛ هسته و افزونهها بهروزند؛ لاگ ورود فعال است؛ بکاپ تازه گرفته شد؛ و تست بازیابی فصلی در تقویم است. گیت را برای هر تغییر بزرگ اجرا کنید و برای تغییرهای کوچک، نسخهٔ سبکش را: چک دسترسی و بکاپ همیشه؛ بقیه ماهانه.
این برگه را کنار برگهٔ انتشار محتوا بگذارید؛ نسخهٔ تازهٔ سایت همانقدر که رویداد انتشار است، رویداد امنیت هم هست. تیکها را با تاریخ و نام اجراکننده ثبت کنید؛ همین ثبتها در ممیزی بعدی، سند فرایند شماست؛ جلسهای که سند دارد، از جلسهای که حافظه دارد کوتاهتر و صادقانهتر تمام میشود. اگر تیم دو نفرید، نقشها را جابهجا اجرا کنید؛ چککننده و اجراکننده یکی نباشد تا چک، چک بماند. برگهٔ چاپشده روی دیوار هم بد نیست؛ گیتِ دیدهشده، بیشتر اجرا میشود تا گیتِ پوشهای.
جمعبندی؛ ریتم ماهانهٔ امنیت
جمعبندی: هشت خطای امنیتی رایج وردپرس بیشتر فرایندیاند تا فنی، و با گیت پیش از انتشار و ریتم ماهانه بسته میشوند — دسترسیها و ورود، افزونهها و بهروزرسانی، و بکاپی که بازیابیاش تست شده. این چرخه ارزان است اما ثبات میخواهد؛ امنیتی که دو ماه رها شود، همان روزِ اولِ بیگیت است. و یک قاعدهٔ آخر: بعد از هر حادثه — حتی کوچک — گیت را بازبینی کنید؛ هر حادثه یک ردیف تازه به برگه اضافه میکند و همین رشد تدریجی، برگه را مخصوص سایت خودتان میکند؛ همین رشد تدریجی است که برگهٔ عمومی را به پروتکل داخلی شما تبدیل میکند.
مسیر کامل این خانواده در هاب امنیت و پشتیبانگیری مرتب است؛ لایهٔ اجراییاش را اگر میخواهید، امنیت و پشتیبانگیری در سوئیت و قیمت و پلنهای سوئیت نشان میدهد. همین هفته برگهٔ هشتچکی را بچینید؛ خطای بعدی یا امروز بسته میشود یا فردا گران میشود؛ امنیت، خریدِ یکباره نیست، ریتم است و ریتم از برگهٔ همین هفته شروع میشود.
رصد ما، رشد شما.
سؤالات پرتکرار
این هشت خطا را با چه ریتمی چک کنیم؟
دسترسیها و بهروزرسانیها را ماهانه و پیش از هر انتشار بزرگ؛ بکاپ را هفتگی با تست فصلی بازیابی. مرور دهدقیقهای همین فهرست، بخش بزرگی از ریسکهای رایج را میبندد.
خطرناکترین خطای این فهرست کدام است؟
بکاپی که بازنمیگردد؛ تا وقتی بازیابی را تست نکردهاید، بکاپ دارید اما بیمه ندارید. تست فصلی بازیابی را به ریتم نگهداری اضافه کنید.
برای مدیر و ادمینها چه چکهایی لازم است؟
حذف نام کاربری پیشفرض، گذرواژهٔ طولانی و یکتا، تأیید دومرحلهای و مرور ماهانهٔ فهرست کاربران؛ ادمین اضافه، درِ بازِ فراموششده است.
افزونهٔ غیرفعال هم خطری دارد؟
بله؛ افزونهٔ غیرفعال اما بهروزنشده کد اجراشدنی روی سرور است. افزونههای بلااستفاده حذف شوند و بقیه با ریتم منظم بهروز شوند؛ فهرست کوتاهتر یعنی سطح حملهٔ کوچکتر.
اگر سایت هک شده باشد از کجا شروع کنیم؟
اول ثبت وضعیت و تعویض دسترسیها، بعد اسکن بدافزار و ادامه از بکاپ سالم؛ راهنمای بازیابی سایت هکشده همین پروتکل را گامبهگام باز میکند.