Компьютерра - Журнал «Компьютерра» № 17 от 09 мая 2006 года
Если вы намерены использовать CMS, то вам подойдет далеко не каждый тарифный план и не всякого хостинг-провайдера. Почти все популярные CMS используют связку PHP и MySQL. Следовательно, ваш тарифный план должен содержать эти опции. У вас должны быть привилегии для создания как минимум одной базы данных MySQL и достаточно свободного места, чтобы занять 3—8 мегабайт дискового пространства под движок, не считая вашего собственного контента. Кроме того, некоторые CMS своими скриптами сильно загружают сервер. Если он и без того вкалывает из последних сил, выберите либо CMS попроще, либо сервер помощнее.
Про бесплатные аккаунты можете сразу забыть. Даже если вы найдете хостинг-провайдера, который предоставит необходимые опции бесплатно, радость не будет долгой. Обычные затруднения: провайдер вдруг сообщает, что бесплатная акция кончилась и со следующего месяца за хостинг нужно платить; устаревшие версии PHP и MySQL (новые только на платных аккаунтах); перегруженный и постоянно падающий сервер; медленный канал; отвратительная техподдержка или ее полное отсутствие. Как показывает опыт, на бесплатных хостингах перечисленные неприятности случаются регулярно и в разных сочетаниях.
Минимальная стоимость аккаунта со всеми нужными опциями колеблется в пределах 6—8 долларов в месяц. Для бизнесмена это ничтожная сумма, но школьника или студента она может здорово напрячь. Даже если вы найдете приятеля, который имеет аккаунт с поддержкой MySQL и готов предоставить вам необходимые данные для удаленного подключения к его БД с вашего аккаунта, — ничего не выйдет. Хостинг-провайдеры умеют считать деньги не хуже вас, и если аккаунт не поддерживает MySQL, то соответствующие функции интерпретатора PHP вам заблокируют. Останется лишь клянчить деньги у спонсоров или вводить на сайт коммерческую составляющую (рекламу, платные услуги).
Для начинающего сайтовода имеет большое значение качество технической поддержки. Сколь ни проста будет CMS, но при эксплуатации аккаунта обязательно возникнут вопросы. Если не хотите на пару дней заморозить работу над созданием сайта в ожидании ответа или получать раздраженные отписки, то при прочих равных условиях выберите хостера с самой дружелюбной техподдержкой. На мой взгляд, российские платные хостинговые услуги в целом неплохи, и если вы не предъявляете каких-то экзотических требований, то размещать сайт следует у нашего хостера[Кстати, техподдержка будет на русском языке].
ФункциональностьCMS бывают универсальные и специализированные. Но в любом случае разработчики стараются строить систему по модульному принципу, дабы развитие сайта не потребовало глубокой переработки. Большинство CMS, особенно бесплатных, позволяют подключать плагины сторонних разработчиков. Как правило, если плагин не является коммерческим (фотогалерея, форум, блог, статистика посещений), он распространяется бесплатно. Если же нужен скрипт или плагин, решающий задачу коммерческого свойства или полезный только вам, то его напишут для вас за деньги. Программистов можно найти на форуме сайта, поддерживающего систему. Зачастую это люди, принимающие непосредственное участие в разработке CMS и знающие ее «изнутри». Расценки для мелкого бизнеса приемлемые (40—120 долларов за решение задачи малой или средней сложности, 5—10 долларов за мелкую доработку).
Одним из главных достоинств CMS называют простоту ввода и размещения содержания, однако именно здесь могут возникнуть затруднения. Легко вводятся лишь тексты с примитивным оформлением. Каждый, кто размещал сообщения на форумах, знает этот джентльменский набор: цвет и стиль шрифта, возможность вставить ссылку или картинку и… все. Для более замысловатой работы существуют редакторы WYSIWIG, делающие верстку страницы наглядной и предоставляющие более широкие возможности для оформления. Самая большая морока получается при переносе на новую систему готовых html-страниц, поскольку внутренний формат представления страниц в CMS может заметно отличаться от стандартного HTML. Если не повезет, то дизайн страницы будет искажен и понадобится доработка. Следует заметить, что встроенный редактор е107 неплохо «проглатывает» домашние заготовки. Кроме того, для этой и других CMS существуют утилиты подготовки и конвертации содержимого страниц.
ИмиджВторой недостаток CMS — инкубаторская похожесть дизайна сайтов. В состав дистрибутива популярных CMS входят разные типовые заготовки (называемые темами оформления или шаблонами), но их количество ограничено и не все они одинаково удачны. Отчасти положение исправляют дополнительные темы, разработанные энтузиастами. Кроме того, можно придать сайту оригинальность, используя собственные баннеры, флэш-вставки и картинки на страницах. Но если вы попробуете менять детали оформления шаблона, появятся затруднения. Например, в таблице стилей шаблона прописано, что заголовки новостей отображаются шрифтом черного цвета. Это значит, что все заголовки будут черными. Если вы захотите выделить особо важную новость заголовком красного цвета, то не факт, что это получится. Далеко не каждая CMS позволяет без «доработки напильником» менять стиль отдельных элементов шаблона и тем более делать разными элементы одного типа в пределах шаблона. Этот мелкий недостаток является следствием важного достоинства — концепции разделения оформления и содержания: то есть возможности изменить стиль отображения однотипных элементов на всех существующих и будущих страницах сайта при помощи редактирования лишь одного параметра в одной таблице стилей.
Впрочем, никто не мешает запустить сайт с минимальными изменениями типового дизайна и постепенно дорабатывать его. Благо писать базовые скрипты и функциональные модули не придется.
БезопасностьНе забывайте, что Злой Хакер спит и видит, как бы взломать ваш сайт. Получив администраторские полномочия, он может изменить дизайн сайта, разместить на нем оскорбительную для вас информацию или похитить конфиденциальные данные пользователей.
Простейший сайт, созданный человеком, ничего не смыслящим в программировании на PHP или Perl, обычно более устойчив к взлому, чем созданный полупрофессионалом. Звучит парадоксально, однако дело в том, что взлом сайта, не содержащего сложных скриптов и состоящего из нескольких тривиальных html-страничек, по сути, означает взлом сервера хостинг-провайдера. Такому взлому противостоят опытные специалисты. Кроме того, у них больше шансов выследить хакера и устроить ему рандеву с правоохранительными органами. Но если ваш сайт взломают из-за вашей собственной ошибки в программировании, вероятность возмездия будет призрачной, а устранять причину и последствия придется самостоятельно.
Безусловным плюсом готовой CMS является то, что она разработана группой более или менее профессиональных программистов [У некоторых из них имеются в прошлом хакерские грешки]. Они обладают опытом, редко повторяют чужие ошибки и всегда готовы исправить собственные. К их услугам специальные форумы по сетевой безопасности и хакерские конференции, которые вы вряд ли будете посещать. Разумеется, ошибки бывают, но они быстро устраняются благодаря интенсивному общению разработчиков. Выбирая CMS, обратите внимание, насколько живо идет общение на форуме поддержки, особенно в ветке, посвященной безопасности. Если вы узнаете, что была обнаружена серьезная уязвимость, которую устранили в течение недели, это даже лучше, чем отсутствие сообщений об уязвимостях. В сложной системе просто-напросто не может не быть ошибок. Если о них не говорят, значит, либо пока не нашли, либо замалчивают. В е107 около полутора лет назад нашлись дыры, но, к чести разработчиков, их быстро заштопали.
Одинаковость сайтов, объединенных общей CMS, играет дурную роль не только с точки зрения дизайна. Опытный хакер легко определит, на какой системе построен сайт, после чего ему гораздо проще подобрать эксплойт (вредоносную программу, использующую известные уязвимости) или выполнить нужные действия вручную. Кроме того, хакеру доступны исходные тексты скриптов[Впрочем, в покупной CMS тексты скриптов на PHP ничуть не менее доступны, если только не используется шифрование скриптов]. Метода обороны на все случаи жизни не существует, просто нужно соблюдать общеизвестные правила безопасности: отключать сервисные функции и поля ввода, без которых можно обойтись; разрешать посетителям сайта минимум вольностей (особенно это касается использования html и вложенных скриптов); по возможности отключить использование cookies при авторизации. Дополнительные рекомендации можно найти на сайтах поддержки CMS.
Существенной особенностью CMS является необходимость периодически делать резервную копию базы данных. Копия традиционного html-сайта хранится на вашем компьютере и может быть в любой момент заново выгружена на сервер. Если сайт основан на CMS, то наработанное вашими трудами содержание хранится на сервере. Взлом сайта или фатальная поломка сервера могут уничтожить контент без шансов на восстановление. Если же вы храните у себя резервный файл базы данных, то можете восстановить сайт даже быстрее, чем при традиционном механизме. По сути, копия является текстовым файлом с разделителями, в который занесено все содержание БД, представленное в виде текста. Достаточно закачать этот файл на сервер и импортировать в базу данных при помощи специальной утилиты (обычно она входит в набор софта, предоставляемого хостинг-провайдером).