InstantCMS

Материал из Викиреальностя
Перейти к: навигация, поиск
InstantCMS
InstantCMS Logo.png
Тип CMS/CMF
Разработчик InstantCMS Team
ОС Кросс-платформенное программное обеспечение
Текущая версия 2.13.0 — 1 января 2020
Лицензия GNU GPL
Сайт instantcms.ru

()

InstantCMS (читается «инстэнт-си-эм-эс») — система управления содержимым с открытым исходным кодом и открытой лицензией.

Написана на языке программирования PHP, использует для хранения данных СУБД MySQL, в кодировке UTF-8.

Движок использует архитектуру MVC, гибко и легко может расширяться под любые цели.[1]

Получить бесплатно официальные версии можно на сайте проекта.

Содержание

[править] История

Проект InstantCMS был основан в 2008 году россиянином Владимиром Обуховым. На текущий момент развивается им же, совместно с группой энтузиастов. Содержит две ветви (называемыми на сайте проекта Первой и Второй ветками).

Первая ветка состоит из 26 релизов[2], крайний обозначается InsnantCMS 1.10.7. Разработчики объявили, что полноценное развитие этой ветки ими остановлено. Обновления могут выходить только при обнаружении уязвимостей и/или критических ошибок. При этом энтузиасты Первой ветви продолжают выкладывать сборки и улучшения.

До 29 октября 2012 года движок Первой ветки базировался на кодировке cp1251_general_ci. С выходом релиза InsnantCMS 1.10 кодировка изменилась. В настоящее время применяется utf-8.

15 октября 2013 движок получил поддержку мультиязычности (релиз InsnantCMS 1.10.3).

Вторая ветка стартовала 1 мая 2014 года и в настоящее время (июль 2017 года) содержит 15 релизов[3]. InstantCMS 2.X отличается от 1.X совершенно другим подходом. Если первая ветка по логике близка к Joomla и подобным "классическим" CMS, то вторая больше похожа на Drupal, Bitrix и другие "взрослые" продукты. InstantCMS 2 основана на идее, что контент сайта и структура профилей пользователей не заданы жестко — они конструируются через админку.

До мая 2016 года регистрация на официальном сайте проекта была ограничена. Зарегистрироваться можно было лишь по приглашениям (инвайтам) участников проекта. Начиная с мая 2016 года регистрация открыта. Ограничения связаны лишь с ведением личных и общественных блогов. Чтобы вести блог на официальном сайте, необходимо заработать определенное количество кармы.

На сегодняшний день (июль 2017 года) на этой CMS в сети работает более 2500 сайтов различной тематики согласно поиску Google и различным сервисам статистики[4]. В рейтинге CMSMagazine InstantCMS занимает 20 место в общем зачете, 9 место среди бесплатных CMS и 3 место среди бесплатных CMS для социальных сетей[5]. InstantCMS входит в десятку популярных CMS по версии различных информагенств[6] и журналов[7]. В рейтинге сайтов StatOnline занимает 21 место.

[править] Основные направления использования системы

Перечислены самые популярные:

[править] Системные требования

Необходимое программное обеспечение на сервере:

  • Веб-сервер Apache с установленным модулем mod_rewrite[8];
  • Интерпретатор PHP версии 5.3 или выше (PHP7 поддерживается);
  • Модули для PHP: gd, iconv, mbstring, simplexml, json, filter, curl;
  • СУБД MySQL версии 5 или выше;
  • Опции PHP register_globals и magic_quotes_gpc должны быть выключены.

[править] Ключевые особенности

В работе системы:

  • предельно простая установка: достаточно загрузить файлы дистрибутива на сервер и пройти по шагам мастера установки системы;
  • несколько WYSIWYG редакторов сразу после установки, на выбор;
  • возможность создания мультиязычных сайтов;
  • возможность разграничения доступа к разделам сайта на основе создания различных групп пользователей, с настраиваемым диапазоном прав от "гостей" до "админов";
  • личные страницы (профили) пользователей в стиле социальной сети;
  • объединение пользователей в клубы;
  • возможность комментирования любых материалов на сайте;
  • внутренний мессенджер;
  • rss-ленты;
  • любые типы контента:
  • удобные фильтры для всех типов контента и профилей[9].

В разработке системы:

  • система изначально русская, исходный код с русскими комментариями;
  • разработка выполняется на GitHub[10];
  • подробная документация для администраторов и разработчиков;
  • большое сообщество и форум поддержки.

[править] Краткий обзор Первой ветки

Первая ветка логически разделена на компоненты, модули и плагины.

[править] Компоненты

Компонент — это часть сайта, несущая на себе законченную функциональную нагрузку. На одной странице сайта может быть только один компонент, хотя компонент может состоять из нескольких страниц. В «коробочной» версии InstantCMS 1.10.7 находится 21 компонент.

[править] Модули

Модуль — небольшой фрагмент, предназначенный для вывода на страницу какой-то дополнительной информации. На странице может быть сколько угодно модулей.

[править] Плагины

Плагин InstantCMS — небольшой, функционально обособленный фрагмент кода, позволяющий расширить основной функционал. Как правило, результат действия плагина непосредственно на страницах сайта увидеть можно только лишь по дополнительной информации, которая появляется в компоненте или модуле.

[править] Фильтры

Фильтры, как правило, добавляются в статьи. Могут обрабатываться в описаниях клубов, описаниях категорий. Фильтр является большим подспорьем автору статьи, когда он хочет поместить в статью какую-то динамически меняющуюся информацию. Пример фильтра — помещение в текст статьи рекламного баннера. Если баннер изменился, нет нужды переписывать статью — это произойдет автоматически.

[править] Краткий обзор Второй ветки

InstantCMS 2 основана на идее, что контент сайта и структура профилей пользователей не заданы жестко — они конструируются через админку. 

Вы можете создавать собственные типы контента, со своими полями, фильтрами и логикой. Таким образом, организуются каталоги любых данных, без необходимости применения сторонних модулей. Управление профилями также позволяет создавать различные поля. Более того, разные группы пользователей могут иметь абсолютно разные профили.

Кроме того, реализован мощный механизм связей между типами контента, группами (клубами) и профилями пользователей.

[править] Основные отличия от Первой ветки

  • Избавление от всех "детских болезней" и архитектурных изъянов;
  • Весь современный стек технологий: UTF-8, PHP 5.3+, HTML5, поддержка Memcached и других вещей;
  • Никаких Smarty, чистый PHP в логике шаблонов;
  • Переработанный подход к юзабилити;
  • Абсолютная расширяемость (плагины везде и для всего);
  • Современный, красивый, читаемый код;
  • Полноценная модель MVC;
  • Полноценная локализация интерфейса;
  • Поддержка единой базы пользователей для нескольких сайтов (единая авторизация);
  • Поддержка сквозной авторизации между основным доменом и поддоменами;
  • Автоматическая проверка обновлений и патчей;
  • Еще больший уклон в социальность;
  • Безопасность;
  • Совершенно новый подход к созданию и обработке контента на сайте.

[править] Безопасность системы

В ноябре 2009 года журнал «Хакер» опубликовал статью "Социальный взлом: Pen-testing популярного движка соцсети". [11] В этой статье указывались различные уязвимости, присущие релизу InstantCMS 1.5.2. Разработчиками были приняты меры к закрытию уязвимостей. Уже через месяц после публикации ими был выпущен релиз InstantCMS 1.5.3. В аннотации к релизу написано:

Публикация в ноябрьском номере журнала «Хакер» заставила провести глубокий аудит кода на предмет пассивных уязвимостей.
Было найдено и закрыто большое количество мест дающих потенциальную возможность SQL-инъекций и XSS.

Владимир Обухов

После этого инцидента безопасности уделяется повышенное внимание. Усилиями участников сообщества проводились различные тесты на безопасность, найденные уязвимости оперативно закрывались. Разработчики неформально (посредством email переписки) получали фидбэк от таких компаний, как High-Tech Bridge Security Research Lab, Cisco[12], Лаборатория Касперского, Positive Technologies[13] и многих других. Итогом стало закрытие всех известных уязвимостей и пересмотр в целом подхода к обработке входных данных.

В InstantCMS2, с учетом накопленного опыта, подход к безопасности изменился кардинально и, как следствие, на текущий момент каких-либо известных уязвимостей нет. Все формы в InstantCMS2 обрабатываются унифицированно, вывод значений впоследствии — также унифицирован. Все входные данные типизируются в автоматическом и полуавтоматическом режимах.

[править] См. также

[править] Примечания

  1. Видео-туториал: Создание компонента [Документация InstantCMS] (рус.). docs.instantcms.ru. Проверено 3 июля 2017.
  2. Архив версий InstantCMS 1.X — InstantCMS Community. instantcms.ru. Проверено 3 июля 2017.
  3. Архив версий InstantCMS 2.X — InstantCMS Community. instantcms.ru. Проверено 3 июля 2017.
  4. InstantCMS Usage Statistics. trends.builtwith.com. Проверено 11 июля 2017.
  5. Каталог платных и бесплатных CMS для социальных сетей (рус.). www.cmsmagazine.ru. Проверено 2 июля 2017.
  6. Рейтинг CMS – самые популярные движки для сайтов: графики, описания и данные, данное исследование подтверждает и наша компания iTrack (рус.). itrack.ru. Проверено 3 июля 2017.
  7. Наталья Сергеевна Харламова Топ-20 бесплатных CMS в России // Иннов: Электронный Научный Журнал. — 2014. — В. 4 (21). — С. 1. — ISSN 2414-5122.
  8. Поддерживается и веб-сервер NGINX, однако все правила из файлов .htaccess должны быть перемещены в локейшены NGINX аналогичным образом.
  9. Е. А. Чирков ИНТЕЛЛЕКТУАЛЬНАЯ ПОИСКОВАЯ СИСТЕМА НАУЧНО- ОБРАЗОВАТЕЛЬНОЙ СОЦИАЛЬНОЙ СЕТИ (русский) // ПОЛЗУНОВСКИЙ АЛЬМАНАХ. — 2010. — № 2.
  10. instantSoft. GitHub. Проверено 3 июля 2017.
  11. Социальный взлом: Pen-testing популярного движка соцсети // Хакер, ноябрь 2009(рус.)
  12. InstantCMS Code Execution Vulnerability (англ.). tools.cisco.com. Проверено 3 июля 2017.
  13. Делаем свободное ПО безопасней: баги и фиксы InstantCMS (рус.). Проверено 3 июля 2017.

[править] Ссылки


InstantCMS относится к теме «Движки сайтов»   ±