Рубрика «Joomla»

Security Week 40: уязвимости в CMS Drupal и не только - 1На прошлой неделе разработчики CMS Drupal закрыли (новость, подробнее у них на сайте) сразу две критические уязвимости. Обе проблемы затрагивают Drupal версий 7.x и 8.x. Наиболее серьезная уязвимость была обнаружена во встроенной системе отправки e-mail (DefaultMailSystem::mail()). Можно задействовать ее таким образом, что при обработке сообщения появляется возможность выполнения произвольного кода. Виной тому, как обычно, отсутствие должной проверки ряда переменных.

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

Такие новости обычно не попадают в дайджест: ну нашли, ну закрыли, молодцы! Но как минимум раз в год стоит посмотреть на самые популярные системы управления сайтом и понять в перспективе, как там обстоят дела с безопасностью. Есть ли фрагментация версий CMS, похожая, например, на фрагментацию платформы Android? Так ли все плохо с безопасностью, как, например, в индустрии тех IoT-устройств, которые вроде и вовсе не IoT-устройства, а роутеры и камеры? Давайте посмотрим.
Читать полностью »

image

Joomla очень плохо переваривает базу данных даже с несколькими тысячами статей в таблице _content. При нескольких десятках тысяч запросы в базу стандартных модулей типа mod_articles_popular могут зависать на секунды.

Всё дело в ACL (Access Control List) — политике контроля доступа. Проверка законности доступа пользователя к материалам занимает свыше 98% времени выполнения запроса.Читать полностью »

Проверка существующих пользователей Joomla на спам

Сообщения спам-ботов (комментарии) часто замаскированы под обычные сообщения пользователей, но содержат рекламные ссылки или текст. Основными задачами таких сообщений являются, переход пользователя на вредоносный ресурс, рекламу или ссылки для повышения позиций их сайта. Это компрометирует сайт и может испортить репутацию, поисковые системы могут понизить позицию сайта в результатах поиска.

Мы реализовали проверку на спам, для комментариев и пользователей, которые уже существуют на сайте. Это позволяет администраторам веб-сайтов автоматически проверять и идентифицировать комментарии и регистрации спам-ботов, которые не были обнаружены обычными средствами защиты от спама.
Читать полностью »

В первой части говорилось об основных проблемах с которыми пришлось столкнуться при изучении Gantry 5. Здесь я постараюсь рассказать о вещах на которые стоит обратить внимание перед написанием своего шаблона.

image
Читать полностью »

Грамотная посадка верстки на CMS WordPress – задача важная (после нескольких проектов мне стало ясно, что это занимает достаточно много времени). Чтобы ускорить процесс, начал искать фреймворк для написания тем WordPress. О Gantry 5 узнал от коллеги, который ведёт сайты на Joomla. Он рассказал, что есть движок, который может работать, как и на WordPress, так и на Joomla (а с некоторых пор и на Grav). Вот и решил узнать о нём побольше. Ведь согласитесь, — это хорошо: работать с одной системой и, перейдя на другую, продолжить пользоваться теми же инструментами.

В русской части интернета почти ничего не нашлось — ни отзывов, ни документации, а статьи оказались поверхностными. Единственно полная информация — только на официальном сайте.

Прочитав всё, что смог найти в русскоязычном интернете и частично документацию, решил изучить Gantry 5. Использование в качестве шаблонизатора twig, и хранение конфигов в yaml формате стало дополнительным плюсом (поскольку я давно присматривался к symfony, но времени не находил – получалось частичное изучение инструментов).
image
Читать полностью »

Инструмент для удобного редактирования кода прямо в браузере - 1

UPD: Заголовок был изменен с «IDE – зло. Давайте использовать Notepad» на более адекватный.

Иногда кажется, что разработчики некоторых крупных интернет-проектов до сих пор пишут код в Блокноте и думают, что все остальные должны поступать также. Шутка, конечно, но почему в большинстве популярных CMS до сих пор отсутствуют удобные инструменты для редактирования кода, я понять не могу. Как ни стараюсь.

Если вам иногда не хватает подсветки синтаксиса при редактировании кода в браузере — добро пожаловать под кат.
Читать полностью »

Ценообразование при создании сайта - 1 Данная статья опубликована для заказчиков веб-сайтов, а не для разработчиков. Призываю разработчиков дополнить в комментариях то, что я упустил.

Заказчики веб-студии делятся на две группы: профессиональные «барыги»-посредники и конечные пользователи. Первая группа прекрасно разбирается в ценообразовании, а вот представители второй нередко приходят в шок после того, как пробегутся по десятку веб-студий города и получат счет от 100 до 10000 у.е. Отчаянно жестикулируя мозолистыми руками, они задают один и тот же вопрос «ПОЧЕМУ ТАК, В ЧЕМ РАЗНИЦА????!!!».Читать полностью »

В продолжение осуществления переводов справочных материалов про лицензирование различных CMS публикую перевод такого материала про другую достаточно популярную CMS — Joomla!, которая также распространяется на условиях лицензии GPL. В тексте есть пояснения по таким вопросам, как например, можно ли продавать лицензии на Joomla!, шифровать расширения и лицензировать их на условиях иных лицензий.
Читать полностью »

Начну с того, что из всех cms joomla — моя любимая, поэтому решил написать вот такую статью. Для начала необходимо установить пакеты, которые понадобятся для установки joomla, выполните команду:

pkg install apache24 mysql56-server wget unzip

После того, как установка завершится, необходимо добавить apache и mysql в автозапуск командами:

sysrc apache24_enable="YES"

sysrc mysql_enable="YES"

Запустим apache и mysql:

service apache24 start

service mysql-server start

Читать полностью »

Очень часто на 80-х процентах обновления возникает ошибка:


1091 Can't DROP 'usertype'; check that column/key exists SQL=ALTER TABLE xxx_users DROP KEY usertype;

После данной ошибки при переходах по административной части CMS возникает ошибка:


Notice: Undefined property: InstallerController::$input in ...administratorcomponentscom_installercontroller.php on line 37 Fatal error: Call to a member function get() on a non-object in ...administratorcomponentscom_installercontroller.php on line 37

Даже при таких ошибках обновить ядро можно.
Читать полностью »