Новости Joomla

Joomla 6: Автоматические обновления ядра в Joomla

Joomla 6: Автоматические обновления ядра в Joomla

👩‍💻 Joomla 6: Автоматические обновления ядра в Joomla. В октябрьском номере официального журнала Joomla - Joomla Community Magazine вышла статья David Jardin, где рассказывается о внедрении функционала автоматического обновления ядра Joomla.❓Почему сейчас? Joomla же жила как-то 20 лет без автоматических обновлений?Это оказалась самая востребованная за последнее время от пользователей Joomla функция. Но, основная причина внедрения - проблемы безопасности. Всякий раз, когда в новой версии Joomla устраняется уязвимость, злоумышленники начинают анализировать код, чтобы выяснить, какая именно уязвимость была исправлена. И как только они это выясняют - начинается разработка автоматизированных скриптов для взлома как можно большего количества сайтов. Затем доступы к автоматически взломанным сайтам продаются в профильных чатах и ресурсах "пачками" по несколько сотен тысяч или миллионов сайтов. Ваш сайт могли взломать несколько лет назад, но воспользоваться уязвимостью могут не сразу, а тогда, когда у злоумышленников возникнет необходимость. И только после этого вы может быть узнаете об этом.Анализ патча, понимание проблемы и разработка скрипта требуют времени. И если владелец сайта не обновит его до истечения этого срока, сайт может быть взломан. А хакеры действуют быстро! Для критических, легко эксплуатируемых уязвимостей речь идёт о временном окне в 10–12 часов — и этого времени явно недостаточно, чтобы все успели обновить свои сайты.Здесь выходят на первый план автоматизированные обновления: проект Joomla теперь может активно устанавливать обновления (и, следовательно, исправления безопасности) на сайты, чтобы гарантировать, что сайты действительно обновляются вовремя.🕘 От первых идей до реализации прошло 5 лет. И здесь можно вспомнить, как в Joomla 5.1 внедрили TUF - The Update Framework, позволяющий устанавливать защищённое соединение между сайтом и сервером обновлений и исключает возможность supply chain attack (атаки на цепочку поставок).Об особенностях реализации и требованиях к сайту читаем подробнее в статье на JCM.@joomlafeed#joomla #secutiry #jcm

Первый выпуск журнала NorrNext в честь 20-й годовщины Joomla™

Первый выпуск журнала NorrNext в честь 20-й годовщины Joomla™

Первый выпуск журнала NorrNext в честь 20-й годовщины Joomla™. Интервью с волонтёрами 🎈Ну что, друзья, вот и настал этот долгожданный момент. Мы выпустили первое издание собственного журнала под эгидой NorrNext, который включает в себя интервью с видными деятелями сообщества из разных стран и континентов.Общий нарратив: показать, что нас объединяет (Joomla) и узнать больше о людях, которые вносят свой вклад в развитие платформы в своих сообществах. 20 лет — это много. Давайте же узнаем о коллегах 🎁 Первый цикл включает такие страны, как Австрия, Испания, Латвия, Россия, Румыния, Тайланд, Черногория, Чехия.⚙️ С кем интервью: ✔️ Владимир Елисеев 🇷🇺✔️ Дмитрий Рекун 🇱🇻✔️ Дмитрий Цымбал 🇷🇺✔️ Евгений Сивоконь 🇷🇺 ✔️ Сергей Толкачёв 🇷🇺✔️ Dénes Székely 🇷🇴✔️ Jan Pavelka 🇨🇿✔️ Miljan Vujosevic 🇲🇪✔️ Sergio Iglesias 🇪🇸✔️ Sigrid Gramlinger 🇦🇹✔️ Pisan Chueatchatchai 🇹🇭‼️ Новые интервью будут добавляться до конца декабря 2025. Заходите по ссылке время от времени💡👉 Читать далее

0 Пользователей и 1 Гость просматривают эту тему.
  • 3 Ответов
  • 34608 Просмотров
*

VannyVann

  • Осваиваюсь на форуме
  • 38
  • 4 / 0
Вот простая схема решения мультиязычности сайта которую я придумал для среднячковых сайтов типа "визитная карточка", т.е. закащик инфу менять почти небудет, но ему подавай супер-пупер админку и мультиязычный сайт...  crazy!

Ну вообщем..... принцип в том, что все языки хранятся в одном поле в базе, чтоб не дублировать ее, и разделены они специальным разделителем, который мы прописываем во всех ланг-файлах, допустим @@@
Кроме того в каждом ланг-файле делаем конст. _OFFSET с разными значениями, от 0 и дальше.., это индекс языка.

Код
DEFINE('_LANG_SEPARATOR','@lang@'); 
DEFINE('_OFFSET','0');       //for example 0-ru    1-de       2-en

Теперь для вывода достаточно написать простенькую ф-цию и юзать ее во всех компонентах, т.е. везде где идет вывод имени, описания и т.д и т.п. вместо
Код
echo $name;
написать
Код
echo lang($name);

Пример такой простой ф-ции:
Код
function lang($text){
   $text_sep=explode(_LANG_SEPARATOR,$text);
   return $text_sep[_OFFSET];
}
Т.е. в базе хранится "русский текст@lang@english text@lang@deutsch text" а выдает только нужный текст.
Делать мультиязычную админку тоже просто: перед отправкой формы, все поля с разными языками скрепляюстся со всеми розделителями  (или лучше уже при приеме формы - безопаснее ;))

Если есть вопросы или советы, отпишите. Я таким макаром уже наклепал проектов, интересно мнение мастеров о таком маневре, безопасно ли это и вообще разумно ли, и стоит ли продолжать.  ;)
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
*

VannyVann

  • Осваиваюсь на форуме
  • 38
  • 4 / 0
нате!!!!
http://crr.com.ua
http://container-ua.com
и еще один в завершении скоро будет....

Товарищи, стандартизируемся. ......и глупостей на форуме не пишем  8)

http://crr.com.ua
При переходе по ссылке для смены языка можно насобирать очень длинный URL типа "http://crr.com.ua/index.php?lang=russian&lang=russian&lang=russian&lang=russian&lang=english&lang=russian&lang=russian&lang=english&lang=russian"
Это не критично, т.к. $_GET['lang'] действительным будет последний, т.е. тот который выбран только-что. Но видок у адреса жутковатый.
СтОит проанализировать $_SERVER['QUERY_STRING'] и собрать только нужные переменные, передаваемые в массив $_GET, перед выводом ссылки &lang=language.

http://container-ua.com

Здесь при смене языка 100% попадаем на главную. А если, опять же, предварительно распарсить $_SERVER['QUERY_STRING'], то можно добиться смены языка на текущей странице.
Код: php
function ParsigQuery($cur_lang){
parse_str($_SERVER['QUERY_STRING'], $arr);
$arr["lang"] = $cur_lang;
$link = "?";
$keys = array_keys ($arr);
foreach ($keys as $item){
$link .= $item . "=" . $arr[$item] . "&";
}
$link = substr($link, 0, strlen($str)-1);
return $link;
}

// Example:
echo "<a href=" . ParsigQuery("english"). ">EN</a> | <a href=" . ParsigQuery("russian"). ">RU</a>";
« Последнее редактирование: 09.12.2009, 13:24:20 от Ko4iLa »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться