Новости 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

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

talion2003

  • Захожу иногда
  • 95
  • 36 / 6
  • Не программер я...
Все ниже приведенное выполяняется в шаблоне сайта!

Предположим, у нас поставлена задача: отобразить модуль слева от основного текста (mainbody) так, чтобы он выводился только в режиме просмотра «таблицы категории», а при открытии материала исчезал. Плюс ко всему, сам модуль вставляется в шаблоне внутри html-таблицы, которая имеет собственное оформление и отведена специально для этого модуля, соответственно и отображается только в случае, когда модуль включен. Наглядно весь этот блок можно представить так:

Код
<table bgcolor="#000000">
        <tr>
              <td>
                   <?php mosLoadModules ( 'left' ); ?>
              </td>
          </tr>
</table>

Итак, чтобы модуль выводился только в режиме «таблицы категории», нам нужно добавить проверку переменной «$task» и присвоить ей значение «category». Для этого мы добавляем следующие строки:

Код
<?php if($task == 'category') { ?>
   <table bgcolor="#000000">
        <tr>
              <td>
                   <?php mosLoadModules ( 'left' ); ?>
              </td>
          </tr>
   </table>
<?php } ?>

Теперь весь блок будет отображаться только тогда, когда мы находимся в режиме просмотра «таблицы категории», а при открытии материала он скроется.

Однако возникает проблема: если мы отключим модуль и вернемся в режим просмотра «таблицы категории», то исчезнет лишь выводимое модулем содержимое, а сама таблица - от открывающего тэга <table> до закрывающего тэга </table> - все равно будет отображаться на экране, портя дизайн. Что же делать? Все очень просто: нам нужно добавить еще пару строк кода и использовать тэг <div>:

Код
<?php if(mosCountModules('left')) { ?> 
  <div>
     <?php if($task == 'category') { ?>
        <table bgcolor="#000000">
           <tr>
              <td>
                   <?php mosLoadModules ( 'left' ); ?>
              </td>
          </tr>
       </table>
     <?php } ?>
   </div>
<?php } ?>

Вот! Теперь, если мы находимся, скажем, в режиме просмотра «таблицы категории» и наш модуль выключен, то всё, что находится между первой и последней строчкой выше приведенного кода, отображаться не будет.

Примечание:
Если нам нужно, чтобы модуль отображался не только в режиме просмотра «таблицы категории», но и в режиме «таблицы раздела», то добавляем через «or» всего лишь еще один параметр переменной «task», вот так:

Код
<?php if(mosCountModules('left')) { ?> 
  <div>
     <?php if($task == 'category' or $task == 'section') { ?>
        <table bgcolor="#000000">
           <tr>
              <td>
                   <?php mosLoadModules ( 'left' ); ?>
              </td>
          </tr>
       </table>
     <?php } ?>
   </div>
<?php } ?>

p.s. - рад был помочь.
« Последнее редактирование: 03.12.2006, 20:17:29 от talion2003 »
Да говорю же Вам, не программер я!!!

 www.chelovekdnevnik.ru www.serdcadetey.ru
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
В эти условия нужно добавить еще проверку на текущий компонент, а точнее com_content. Иначе данный модуль может случайным образом появиться на страницах других компонентов, в которых используется параметр task и  значение category. Применительно к последнему примеру, вышесказанное можно применить следующим образом:

Код
<?php if (mosCountModules('left') && $option == 'com_content' && $task == 'category' or $task == 'section') { ?> 
  <div>
        <table bgcolor="#000000">
           <tr>
              <td>
                   <?php mosLoadModules ( 'left' ); ?>
              </td>
          </tr>
       </table>
   </div>
<?php } ?>

@talion2003: респект за статью!
« Последнее редактирование: 11.06.2008, 12:03:25 от smart »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться