О жизни, Техническое » А DCMS-то годнота по итогам прошедшего времени


6 февраля 2022 от lionovsky
Те, кто "жил" в ВАПе, наверное, помнят "бум" ухода юзеров на клоны спейсеса, создаваемые такими же спейсовчанами в 2009-2014 годах.

Все эти клоны клёпались на DCMS, и выглядели так:

312799465.p.800.800.0.jpg (66.35 Kb)

Так вот, с точки зрения современных реалий, DCMS - годнота-то, оказывается!

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

Что могу сказать:
1. В данный момент - WTFPL. Автор свалил с сети, кому "платить" ХЗ, а так я только за =)
2. Код хороший. Писался "под мобилы", по сравнению с современными "социальными" движками - прост и очень легко переписывается под себя.
3. Модулей и дополнений просто море.
Школота раньше делала соцсеточки на любой вкус, поэтому по Spaces все эти модули найти можно пачками, разница лишь в количестве дыр, которые нужно фиксить.
4. Дизайнов ещё больше - ещё с тех времён, в которых на копирайт школоте было плевать. Спокойно берём, и перепиливаем под себя что нужно - и у нас красивый сайт.

Что на "неонароде" выросло из "паблика":
1. //neonarod.com/dnev/
Автор ХЗ, скрипт блогов найден в паке "28 модов как на Spaces", пришлось пару часов приложить на фиксы - XSS были минимум в трёх местах, страдала обработка комментариев - писать можно было в любой блог, даже не существующий.

Раздел не особо популярен, но юзерам, которым нужно "прикрутить" блог к статичному HTML-сайту - пойдёт.

2. //neonarod.com/users_gb.php?id=1
3. //neonarod.com/chat.php?id=1
Опять гостевые из паблика, но они были знатно переписаны - htmlspecialchars() где нужно, проверка сессии, запись айпишника юзера и возможность включения/выключения.

А "чаты" - это вообще клон гостевых с автообновлением и другим оформлением.

По недостаткам:
1. Дыры в самом движке. Ничто не мешает вам поместить кнопочки админа на сторонний сайт и этими кнопочками забрать себе админку =)
Лечится скрытыми формами как на Spaces, капчей, и "убиванием" админской сессии в случае неактивности в N секунд.
2. Дыры в модулях. Установил модуль - поставь сначала проверку сессии, а затем всё остальное. Бедный Spaces в своё время настрадался от этого, ровно как и авторы всех модулей.

Так же, везде надо проверять формы на XSS/MySQL-injection, так как авторы в некоторых модулях проверки реализовали вообще через жопу - https://www.govnokod.ru/27077

Это всё надо выпиливать и заменять на htmlspecialchars() или подобное.

3. PHP 5.3. В 7 версии часть движка и юзерских модулей работать не будут - виной всему break вместо exit который вставлен везде, где только можно.
Однако, слава хостерам - PHP 5.2/5.3 можно найти на многих хостингах.

Короче, движок прошёл проверку временем, но нужно понимать, куда "приложить руки".