sajad.azتوسعه وب و نرم‌افزارگفت‌وگو درباره پروژه ←
→ یادداشت‌هاوردپرس و ووکامرس · نگهداری نرم‌افزار

نگهداری افزونه اختصاصی بعد از انتشار؛ برنامه به‌روزرسانی و امنیت

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

توسعه‌دهنده در حال نگهداری یک ماژول نرم‌افزاری همراه با چرخه آزمون، پشتیبان و امنیت
نگهداری خوب یک چرخه تکرارشونده است: بررسی، آزمون، پشتیبان، انتشار و پایش.

پیش از هر چیز، مسئولیت‌ها را مکتوب کنید

«پشتیبانی افزونه» عبارت دقیقی نیست. مشخص کنید چه کسی اعلان‌های امنیتی و نسخه‌های وردپرس، ووکامرس، PHP و کتابخانه‌های افزونه را دنبال می‌کند؛ چه کسی تغییر را می‌سازد و تأیید می‌کند؛ چه کسی نسخه را روی سایت اصلی منتشر می‌کند؛ و در خطای خارج از ساعت کاری چه مسیری وجود دارد. مالک کسب‌وکار، مدیر سایت و توسعه‌دهنده ممکن است مسئولیت‌های متفاوتی داشته باشند.

رویداداقدام لازمخروجی قابل ثبت
انتشار امنیتیارزیابی اثر و اولویت، سپس آزمون اصلاحنسخه متاثر، تصمیم و زمان انتشار
به‌روزرسانی وردپرس یا ووکامرسآزمون سناریوهای افزونه روی stagingنسخه‌ها و نتیجه آزمون
تغییر API بیرونیبررسی قرارداد داده، احراز هویت و خطاهاتغییر نگاشت و برنامه مهاجرت
خطای عملیاتیثبت نمونه، دامنه اثر و راه بازتولیدگزارش رخداد و اقدام اصلاحی

یک شناسنامه فنی زنده نگه دارید

شماره نسخه افزونه، نسخه‌های پشتیبانی‌شده PHP و وردپرس، وابستگی‌ها، سرویس‌های بیرونی، cronها، webhookها، جدول‌های پایگاه داده و محل تنظیمات را ثبت کنید. برای افزونه ووکامرس، وضعیت آزمون HPOS، Checkout Blocks، درگاه‌ها و هر مسیر سفارشی سفارش نیز باید معلوم باشد. شناسنامه با هر نسخه تغییر می‌کند و نباید فقط در ذهن سازنده باقی بماند.

چرخه منظم و مسیر فوری را از هم جدا کنید

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

قبل از به‌روزرسانی چه چیزهایی را بررسی کنیم؟

  1. تغییرات را بخوانید: release note هسته، ووکامرس، کتابخانه یا API مرتبط را با بخش‌های مورد استفاده افزونه تطبیق دهید.
  2. پشتیبان قابل بازیابی بگیرید: فایل و پایگاه داده هر دو مهم‌اند. وجود فایل پشتیبان بدون آزمون بازیابی، تضمین بازگشت نیست.
  3. staging را به وضعیت واقعی نزدیک کنید: نسخه‌ها و تنظیمات مهم مشابه باشند، اما ارسال ایمیل، پیامک، پرداخت و webhook واقعی کنترل شود تا آزمون رخداد بیرونی نسازد.
  4. همان مجموعه نسخه‌ها را آزمایش کنید: ترکیبی را تست کنید که قرار است منتشر شود؛ چند تغییر بزرگِ آزمون‌نشده را هم‌زمان وارد سایت اصلی نکنید.

مجموعه آزمون رگرسیون کوچک اما واقعی بسازید

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

مثال فرضی برای افزونه اتصال سفارش: ساخت سفارش آزمایشی نباید دو رکورد مقصد ایجاد کند؛ لغو باید طبق قاعده توافق‌شده منتقل شود؛ قطع API باید خطای قابل پیگیری بسازد؛ و تلاش مجدد نباید داده را تکراری کند. این مثال گزارش یک پروژه انجام‌شده نیست.

بازبینی امنیت فقط نصب افزونه امنیتی نیست

در تغییرات کد، کنترل سطح دسترسی، nonce برای درخواست‌های مدیریتی، اعتبارسنجی و پاک‌سازی ورودی و escape متناسب با محل خروجی را بررسی کنید. کلیدهای API نباید در مخزن عمومی، لاگ قابل دانلود یا کد مرورگر قرار گیرند. دسترسی کاربر یا سرویس را تا حد لازم محدود و دسترسی‌های موقت را پس از تحویل حذف کنید.

nonce جای کنترل مجوز را نمی‌گیرد و پاک‌سازی ورودی نیز جای escape خروجی نیست؛ هر کدام وظیفه جداگانه دارند. راهنمای امنیت افزونه وردپرس این کنترل‌ها را به‌صورت مستقل توضیح می‌دهد.

انتشار را مرحله‌بندی و قابل بازگشت کنید

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

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

چک‌لیست برنامه نگهداری

منابع فنی

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

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

ارسال شرح افزونه و وضعیت فعلی

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