Announcement of security notice should be written in advance with the release window, and the site should reserve how long for maintenance time.
The security announcement should be written in advance with the release window. How much maintenance time should the site reserve? Arrange according to 'only upgrades within the window, and backups and validations outside the window', and reserving half a day to a day is more secure overall.For example, a core security release announced in advance by Drupal, the official time period given is from 16:00 to 21:00 UTC on October 14, covering all supported branches - announcing the specific time period in advance, the site can utilize not just those few hours, but the lead time: you can complete backups and verify the test environment before the window, and only perform replacements and verifications within the window, leaving time for observation and rollback after the window.
Why do patches cluster together
The centralized release window is a common practice in the upstream: fix multiple vulnerabilities at one time during the same period, so that administrators only need to schedule maintenance in a known period rather than passively respond to announcements that appear at any time. For the site side, the schedule can be planned - see the announcement and know which day to allocate personnel, rather than respond temporarily after being exploited.
Announcing in advance also brings a reverse pressure: the repair plan and the location of the vulnerability will be disclosed with the announcement, and the risk for sites that have not been upgraded is the highest during this period. Therefore, the core contradiction of the window scheduling is not 'how long does the upgrade take', but whether the backup and verification have been completed before the window.'
Five-phase scheduling and duration
| Stage | content | Suggested time slot | Common mistakes |
|---|---|---|---|
| Backup | Full backup of data and static files | Completed before the window | Only backup data, omitting attachments and generated files |
| Test verification | Run upgrades and main process in the test environment | Completed before the window | No test environment, directly test on production |
| Official upgrade | Replace program, execute data structure changes | Within the window | Upgrade overlaps with business peak |
| Online verification | Front-end page, back-end login, interface call verification item by item | Within the window | End if the home page is normal |
| Rollback reserved | Restore from backup when an exception occurs | End of the window | No reservation, rollback late at night |
The duration is estimated according to the site volume: for sites with little content and attachments, backup and recovery are both at the minute level; when the scale of attachments is large, the backup segment needs to be allocated for a longer period separately. The real risk point is 'finding a problem after upgrading but not having a point to restore', this section is most likely to be skipped.
Backup and rollback are at the bottom of the schedule.
The schedule can be made tight depending on the range of backup and recovery. Backup and recovery support the backup and recovery of data along with static files, which directly determines the rollback time: if the backup only covers the database, after the upgrade fails, the program files and attachments still need to be found elsewhere, and the rollback will change from 'restore' to 'rebuild'.
The rollback reserve should be written into the schedule instead of an oral promise. A more reliable approach is to leave a clear judgment time at the end of the window - if the problem has not been located by the time, restore instead of continuing to investigate.
The deployment method determines the verification cost.
The same patch has different deployment path durations. The site deployed using Docker images involves replacing the image and restarting for upgrades, while rolling back is to revert to the previous version of the image, provided there is an independent data volume and backup; for sites deployed using Baota panel or aaPanel with one-click deployment, operations are concentrated in the panel, and rollback depends more on the location and integrity of the backup files. Regardless of the path, the verification list is the same: the front-end list and detail pages, backend login, pseudo-static addresses, and whether the interface calls are still normal.
AnQiCMS in the v3.6.6 fix provides a reference: This version fixes two high-risk issues of SQL injection in list sorting parameters and the login credentials of site switching can be forged, and the upgrade suggestion also requires the rotation of site signature keys and the change of the administrator password. The schedule for the security upgrade is therefore not just the step of 'changing the program', but also includes credential update and login verification after the update - this part of the time is often not counted in the maintenance window.
Common questions
What should I do if I miss the announcement window?Backup first, then upgrade. Do not skip the test environment verification just because you miss the window. The window is just a suggested time period from the upstream, not the time when the patch becomes invalid.
Can the upgrade be done without changing the configuration?If the version description provides credential rotation suggestions at the same time, changing only the program and not the configuration is half the fix. Schedule this part of the action time.
Do we need to notify users during the maintenance period?It is recommended to explain the approximate time period and scope of impact in advance. Writing operations within the window period (comments, messages, form submissions) are most likely to be lost, and all operations that can be paused should be paused within the window.
How often should a recovery drill be done?At least ensure one complete restore test from the backup. Without practicing the backup, the recovery time is unknown, and the scheduling is just an estimate.