К сожалению, Интернет нельзя назвать исключительно дружелюбным пространством. Особенно с точки зрения владельца web-сайта. Потому что, скорее всего, этот web-сайт рано или поздно подвергнется хакерской атаке. Окажется атака успешной или нет — зависит от тщательности подхода создателей сайта к вопросам безопасности, а также от правильного сопровождения системы управления контентом (CMS), которая обеспечивает работу сайта.
Любая CMS с большим набором функций — это довольно сложный «программный комплекс». А чем сложнее «программный комплекс», тем больше в нём ошибок программистов. В том числе и ошибок, которые дают возможность взломать сайт. Такие ошибки в проектировании и в реализации CMS обычно называют уязвимостями.
Наличие уязвимостей в CMS может привести к нарушению работы web-сайта, к полной его «остановке» и даже к потере данных, размещённых на сайте. Более того, хакеры, взламывающие web-сайт, могут заменить его страницы, опубликовав, к примеру, некое сообщение, «рекламирующее» успешность хакерской деятельности (так называемый «дефейс»). Не лучшей является и ситуация, когда хакерам становится доступна внутренняя информация с взломанного сайта, например, список клиентов интернет-магазина.
Фактически, любая CMS содержит уязвимости, но это не означает, что ситуация безнадёжна. Уязвимости обнаруживают, а разработчики CMS их устраняют. Общепринятая практика устранения уязвимостей — выпуск обновлений программного кода CMS. Установив такое обновление на уже работающем под управлением данной CMS сайте, его владелец получает новую версию, свободную от старых, обнаруженных дефектов, при этом обычно не требуется полная реорганизация и «переустановка» сайта. Обновления для CMS распространяются с официальных сайтов разработчиков, а в некоторых системах получение и установка обновлений хорошо автоматизированы.
Поддержание CMS в актуальном состоянии регулярными обновлениями — необходимый элемент базовых мер по обеспечению безопасности функционирования web-сайта. При этом важно иметь в виду, что не всегда обновления содержат исправления уязвимостей. Например, очередное обновление может добавлять в CMS новые функции.
Рано или поздно уязвимости обнаруживаются в любой CMS. Поэтому важным критерием при выборе CMS становится качество и оперативность обновлений. Если разработчики бросили поддерживать CMS три года назад, вряд ли стоит использовать эту систему, какой бы хорошей и удобной она ни казалась: в случае обнаружения «дыры», скорее всего, некому будет эту «дыру» залатать, и web-сайт придётся строить заново.
При хорошо налаженном процессе обновление CMS сводится к загрузке специальных файлов обновления с сервера разработчика. После загрузки обновлений на сервер, запускается программа обновления, и программный код заменяется на более новый автоматически. Иногда для проведения обновления требуется временно «остановить» web-сайт, переведя его средствами CMS в режим технического обслуживания.
Для некоторых CMS проведение обновления является сложным процессом, требующим помощи специалиста высокой квалификации. Соответственно, так как обновлять CMS всё равно придётся, владельцу web-сайта следует заранее определиться со своими «техническими возможностями» и, сообразно им, выбирать CMS.
Ещё один важный момент, связанный с безопасной работой сайта, — модули расширения для CMS, созданные сторонними разработчиками. Эти модули также могут содержать уязвимости. Более того, даже в самой хорошо защищённой от хакеров CMS дополнительно установленный модуль неграмотного разработчика может создать огромную «дыру». При этом обновления программного кода CMS не могут убрать «дыры» из дополнительных модулей. Каждый такой модуль нужно исправлять в отдельности. Поэтому хорошим решением будет использование минимально необходимого набора модулей-расширений.
Надёжный web-сайт — это не «суперзащищённый» ресурс, без присмотра работающий под управлением «уникальной» CMS, а это тот сайт, за безопасностью которого постоянно следят, своевременно реагируя на возникающие риски и угрозы.