Перейти до вмісту
Флагманський проєкт

CMS, у якій безпека — це архітектура, а не плагін

Модульна система на чистому PHP 8.4 із Capability-Firewall, контролем цілісності ядра SHA-256 та вбудованим ШІ-асистентом. Кожен модуль працює лише з тим, що явно задекларував — усе інше блокується на рівні ядра.

Демо-сайт на FCE CMS Як з'явився цей проєкт →

0 сторонніх фреймворків
17 ізольованих модулів
SHA-256 контроль цілісності ядра
9+ ШІ-провайдерів із коробки
Архітектура

Архітектура, якої немає в інших CMS

У типовій CMS будь-який плагін може читати всю базу даних. У FCE CMS модуль фізично не може зробити те, чого не задекларував у маніфесті.

Capability Firewall

Доступ до БД, HTTP-клієнта, файлів чи сповіщень модуль отримує тільки через задекларовані Capabilities. Несанкціонований запит — виняток на рівні ядра, а не «попередження в лог».

Цілісність ядра SHA-256

Integrity Checker звіряє хеші всіх файлів ядра при кожному запуску в production. Підмінений файл — система зупиняється, а не «працює далі з бекдором».

Ізоляція таблиць БД

Кожен модуль володіє лише власними таблицями. Читання чужих — тільки через явний список foreign_reads. UPDATE без WHERE неможливий фізично — ядро його відхилить.

Крос-модульні виклики за подвійною згодою

Модуль А викликає модуль Б лише тоді, коли Б явно експортував метод, а А явно задекларував намір його викликати. Відсутність будь-якої з декларацій — нуль дозволених викликів.

Статичний аналізатор модулів

Перед запуском кожен модуль сканується на небезпечні конструкції: eval, динамічні include, прямий доступ до суперглобалів. Підозрілий код не отримає жодної Capability.

Безпека користувачів із коробки

Двофакторна автентифікація TOTP з резервними кодами, відновлення пароля, CSP із nonce, double-submit CSRF, політика паролів — усе вбудовано, без жодного плагіна.

Безпечний шаблонізатор

У шаблонах немає сирого PHP. Кожна змінна автоматично екранується, а список доступних шаблону полів — білий список у маніфесті. XSS через шаблон неможливий за конструкцією, а не завдяки уважності розробника.

Нуль залежностей

Жодного vendor-каталогу із сотнями чужих пакетів. Увесь код, що виконується на сервері, — це ядро та модулі FCE CMS. Скомпрометований сторонній пакет фізично не може потрапити у систему.

Реальні цифри

Не маркетинг — виміряно по репозиторію

Ці цифри я не вигадую для сторінки — вони порахувані прямо з коду й оновлюються разом з ним.

271

автотестів PHPUnit покривають ядро та модулі

30 000+

рядків PHP-коду в ядрі й модулях

34

міграцій бази даних — кожна зміна схеми версіюється

232

PHP-файлів ядра та модулів

8.4

мінімальна версія PHP — сучасний синтаксис без сумісності зі старим

3.0

поточна версія ядра за SemVer

Порівняння

FCE CMS проти типової CMS

Чесне порівняння з класичними CMS на плагінній архітектурі.

FCE CMS Типова CMS
Ізоляція модулів на рівні ядра Capability Firewall плагін бачить усе
Контроль цілісності ядра SHA-256 при кожному запуску зовнішні сканери
Залежність від фреймворків нуль — чистий PHP 8.4 сотні vendor-пакетів
ШІ-асистент вбудований, 9+ провайдерів платні плагіни
Двофакторна автентифікація TOTP із коробки окремий плагін
Статичний аналіз коду модулів перед кожним запуском відсутній
Шаблони автоекранування + білий список змінних сирий PHP у шаблонах
Модулі

Усе потрібне — вже в системі

17 модулів, кожен зі своїм маніфестом безпеки. Вимкніть непотрібне — система стане ще легшою.

BlogWYSIWYG, планування публікацій, ШІ-генерація
AiПрофілі провайдерів, статті та SEO
SEOSitemap, IndexNow, метадані, JSON-LD
SearchПовнотекстовий і миттєвий пошук
UsersРолі з гранульованими правами
Auth2FA TOTP, відновлення пароля
MediaМедіатека з безпечним завантаженням
AnalyticsВласна статистика без сторонніх трекерів
PagesСтатичні сторінки, захист паролем
CommentsКоментарі з модерацією
CategoriesТаксономія для будь-якого типу контенту
TagsАрхів статей блогу за тегом
ModuleManagerКерування модулями з адмінки
AdminПанель керування, дашборд, налаштування сайту
BackupПовний бекап і відновлення БД та медіафайлів
NavigationКонструктор навігаційних меню
RegistrationСамостійна реєстрація з підтвердженням email