Новости Joomla

Компонент View logs v.2.2.0

👩‍💻 Компонент View logs v.2.2.0.По горячим следам, рекомендациям и просьбам Joomla-сообщества компонент просмотра логов Joomla получил следующую версиюv.2.2.0. Что нового?- Обновление интерфейса: список логов сделан в виде таблицы, отображение дополнительной информации в списке файлов (время создания и последнего изменения, кнопки действий и их порядок) изменены и сделаны менее пёстрыми.- Добавлен поиск-фильтр по имени файла лога на странице. Находите нужный файл быстрее.- Большие файлы. Просмотр файла лога в модальном окне сохранён для файлов менее 1МБ. Возможность открыть файл в отдельном окне сохранена. Но используйте эту функцию с осторожностью: файлы объёмом 8-10мб ещё возможно открывать в браузере, но более крупные - не рекомендуется. Системные требования:- Совместимость с Joomla 6 и PHP 8.4.- Минимальная версия PHP по-прежнему 8.0.Страница расширенияGitHub расширения@joomlafeed#joomla #расширения

Joomla официально признана цифровым общественным благом Joomla с гордостью сообщает, что была...

Joomla официально признана цифровым общественным благом 🙏🎉Joomla с гордостью сообщает, что была официально признана цифровым общественным благом (Digital Public Good, DPG) Альянсом цифровых общественных благ (Digital Public Goods Alliance, DPGA) — инициативой, поддерживаемой Организацией Объединённых Наций.Это признание ставит Joomla! в ряд международных open-source проектов, которые разделяют ценности открытости, прозрачности, защиты данных и социального воздействия. Важно отметить, что статус цифрового общественного блага присвоен самому программному решению Joomla!, а не организации Joomla как юридическому лицу.Альянс цифровых общественных благ (DPGA) ведёт международный реестр цифровых общественных благ и оценивает проекты на основе чётко определённых стандартов. Его миссия — поддержка открытых технологий, способствующих достижению Целей устойчивого развития ООН (UN SDGs) и решению глобальных задач развития. 🌐Чтобы получить статус цифрового общественного блага, проект должен соответствовать Стандарту цифровых общественных благ (Digital Public Goods Standard), который включает следующие критерии:✔️ Открытое лицензирование (например, использование признанных open-source лицензий)✔️ Защита данных и безопасность✔️ Соответствие правовым и этическим нормам✔️ Вклад в достижение Целей устойчивого развития ООН✔️ Прозрачное управление и долгосрочная устойчивость✔️ Активное вовлечение сообществаПолучение статуса цифрового общественного блага — процесс далеко не автоматический. Joomla прошла тщательную процедуру оценки, которая потребовала предоставления подробной документации и доказательств соответствия строгим стандартам.Благодаря самоотверженной работе множества участников сообщества, этот результат стал наглядным подтверждением универсальности и открытости Joomla, а также бесчисленных способов, с помощью которых она помогает людям создавать веб-решения.Это достижение подчёркивает позицию Joomla как одной из самых надёжных и гибких open-source CMS в мире — системы, которая продолжает давать возможность разработчикам, организациям и государственным структурам создавать открытые, безопасные и инклюзивные цифровые решения.Оригинал новости

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

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
Подскажите, каким образом при помощи open_basedir отделить сайты (директории доменов) друг от друга? Чтобы если один сайт оказался зараженным, вредонос не смог ничего прочитать или записать в директории других сайтов по соседству.

Вариант с прописыванием в .htaccess не подойдет, так как потенциальный вредонос легко сможет данный .htaccess переписать. Толковых примеров для файла php.ini не нашел, соответственно не понимаю, как сразу несколько десятков хостов отделить / разграничить / изолировать.

Сайты на VPS, т. е. доступ к конфигам у меня полный.
« Последнее редактирование: 22.04.2019, 14:56:58 от dm-krv »
*

sivers

  • Живу я здесь
  • 2595
  • 360 / 0
Если у вас Apache, то необходимо заменить Apache MPM-Prefork на Apache MPM-ITK - это можно сделать в ISP Manager, если используете его (на вкладке "Возможности" в разделе ВЕб-сервера). Либо переустановить его вручную. Лучше потренироваться на отдельном ВПС. Если взять связку нгинкс+пхп-фпм (апач в этом случае можно полностью выпилить), то там по умолчанию так все настроено. Далее надо под каждый сайт создавать своего пользователя и переносить сайты из общего каталога в каталоги этих пользователей. После перехода на apache-itc надо будет подправить имеющиеся конфиги. Если будете делать - вышлю более подробные инструкции (остались со времен апача).
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
Не ISP - использую панель BrainyCP, стоить классическая связка LAMP, без nginx. Там и так можно отдельных пользователей делать, да только это убиться можно будет в процессе - слишком муторно и напоминает стрельбу по воробьям из орбитального лазера.

Поэтому и хочу хоть какую-то изоляцию через open_basedir попробовать сделать.
*

sivers

  • Живу я здесь
  • 2595
  • 360 / 0
Поэтому и хочу хоть какую-то изоляцию через open_basedir попробовать сделать.
Понятно. Отпишитесь, если найдете решение.
Может разные юзеры на каждый сайт и выглядит как перебор... Но это тоже подстраховка. У нас когда-то все сайты лежали у одного юзера. А потом вирус на локальной машине одного из разработчиков слил фтп-пароль и получил доступ сразу ко всем сайтам. Но и описанный вами способ заражения имел место )
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
Нашел инструкция на зарубежных сайтах о том, как правильно применять open_basedir к настройкам хост.
Дописал директиву в настройки сайта:

<VirtualHost 188.127.249.225:80 >
ServerName rvp74.ru
ServerAlias http://www.rvp74.ru 
DocumentRoot /home/optima/sites/rvp74.ru

php_admin_value open_basedir "/home/optima/sites/rvp74.ru:."

<IFModule proxy_fcgi_module>
ProxyFCGISetEnvIf "true" SCRIPT_FILENAME "/sites/rvp74.ru%{reqenv:SCRIPT_NAME}"
<FilesMatch \.php$>
#SetHandler "proxy:unix:/var/run/php-fpm/php56w-optima.sock|fcgi://rvp74.ru/sites/rvp74.ru"
SetHandler "proxy:unix:/var/run/php-fpm/php56w-optima.sock|fcgi://localhost/"
</FilesMatch>
</IFModule>

<Directory "/home/optima/sites/rvp74.ru">

AllowOverride All
Require all granted

</Directory>
           
           
CustomLog /etc/httpd/vhost_logs/rvp74.ru_access combined
ErrorLog /etc/httpd/vhost_logs/rvp74.ru_error
DirectoryIndex index.php index.html index.htm

</VirtualHost>


Однако у меня после этого упал apache ругаясь на вписанную строку:

● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Mon 2019-04-22 13:19:37 +05; 24ms ago
Docs: man:httpd.service(8)
Process: 8538 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
Main PID: 8538 (code=exited, status=1/FAILURE)
Status: "Reading configuration..."

Apr 22 13:19:36 rvp74.ru systemd[1]: Starting The Apache HTTP Server...
Apr 22 13:19:37 rvp74.ru httpd[8538]: AH00526: Syntax error on line 6 of /etc/httpd/vhost.d/rvp74.ru.conf:
Apr 22 13:19:37 rvp74.ru httpd[8538]: Invalid command 'php_admin_value', perhaps misspelled or defined by a module not included in the server configuration

Apr 22 13:19:37 rvp74.ru systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Apr 22 13:19:37 rvp74.ru systemd[1]: Failed to start The Apache HTTP Server.
Apr 22 13:19:37 rvp74.ru systemd[1]: Unit httpd.service entered failed state.
Apr 22 13:19:37 rvp74.ru systemd[1]: httpd.service failed.


Подскажите, куда копать. Почему php_admin_value не сработала?
« Последнее редактирование: 22.04.2019, 11:44:04 от dm-krv »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
потому что у вас php не как модуль апача, а как php-fpm. добавляйте это в конфигах php-fmp, а не апача.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
потому что у вас php не как модуль апача, а как php-fpm. добавляйте это в конфигах php-fmp, а не апача.

Нашел ровно один конфиг внутри каталога:
Код
/etc/php56w/php-fpm.d
Но ведь он применяется ко всем сайтам использующим эту версию php, а мне надо конфиги к каждого отдельному хосту. Нельзя ли здесь ничего сделать? Предопределить конфиг к конкретному виртуальному хосту?
« Последнее редактирование: 22.04.2019, 12:43:49 от dm-krv »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
вы не поняли. или я неправильно выразился :) у вас есть блок
Код
<IFModule proxy_fcgi_module>
...
вот в нем и добавляйте
Код
ProxyFCGISetEnvIf "true" PHP_ADMIN_VALUE "open_basedir=/home/optima/sites/rvp74.ru:."
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
вы не поняли. или я неправильно выразился :) у вас есть блок
Код
<IFModule proxy_fcgi_module>
...
вот в нем и добавляйте
Код
ProxyFCGISetEnvIf "true" PHP_ADMIN_VALUE "open_basedir=/home/optima/sites/rvp74.ru:."

Работет  :D

Для проверки использовал небольшой скрипт, который показывает содержимое каталога на уровень и выше и там же создает тестовый файл:
Код
<?php

$files = scandir('../');

foreach ($files as $file) {
    echo $file . "<br>";
}

$test = "Проверка 7";

file_put_contents('../test.txt', $test);

?>

И если до установки директивы он все показывал и тестовый файл успешно создавал, то после установки директивы, как отрезало - ничего не показывает и запись на уровень выше тоже не идет.

Dmitry_stas, огромное спасибо, от души) Прям реально помог и сильно.
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
Для тех, кто зашел сюда полюбопытствовать, информирую, что для нормальной работы Joomla кроме open_basedir нужно еще две директивы рядом вписать, а именно (ниже примеры):
Код
ProxyFCGISetEnvIf "true" PHP_ADMIN_VALUE "open_basedir=/home/optima/sites/rvp74.rf"
ProxyFCGISetEnvIf "true" PHP_ADMIN_VALUE "upload_tmp_dir=/home/optima/sites/rvp74.rf/tmp"
ProxyFCGISetEnvIf "true" PHP_ADMIN_VALUE "session.save_path=/home/optima/sites/rvp74.rf/tmp"

Выяснилось все экспериментально, методом тыка и гугления.

upload_tmp_dir - определяет каталог для временного хранения загруженного файла. Если указан параметр open_basedir, то php будет пытаться открыть стандартную папку /tmp, то есть попытается выйти за пределы разрешённой директории и в результате будет выдавать ошибку, если захотите обновить Joomla.

session.save_path - все аналогично, только это папка для хранения сессий php.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
или можно в Информации о PHP посмотреть куда upload_tmp_dir и session.save_path ссылаются, и добавить этот каталог в open_basedir
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
или можно в Информации о PHP посмотреть куда upload_tmp_dir и session.save_path ссылаются, и добавить этот каталог в open_basedir

Тоже вариант, только смысл сайтам давать доступ к временный файлам и сессиям друг-друга?

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

Код
ProxyFCGISetEnvIf "true" PHP_ADMIN_VALUE "disable_functions=dl,shell_exec,exec,system,passthru,proc_open,proc_nice,socket_create,socket_open,proc_get_status,proc_close,proc_terminate,posix_mkfifo,popen"

Попробовал, вроде бы все основное в Joomle работает нормально, ничего не отвалилось. Хотя допускаю, что некоторые вещи могут перестать работать после включения этой директивы.

Собственно считаю на этом тему закрытой. Все работает и теперь могу вздохнуть чуть более спокойно)
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
смысл сайтам давать доступ к временный файлам и сессиям друг-друга?
а они не будут (по крайней мере не должны, если php-fpm настроен верно) его иметь в любом случае. но можно конечно и так, как сделали вы, указать разные.

В интернетах также пишут, что для обеспечения большей безопасности можно запретить некоторые потенциально опасные функции
имхо точно также не имеет смысла. всего "потенциально опасного" вы не запретите, иначе не будет работать многое, поэтому имхо это просто запрет ради запрета. имхо достаточно того, что вы ограничили выполнение open_basedir
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
Блин, опять проблемы. Почему то использование директивы:
Код
ProxyFCGISetEnvIf "true" PHP_ADMIN_VALUE "upload_tmp_dir=/home/optima/sites/rvp74.rf/tmp"

Полностью отменяет open_basedir - он банально прекращает работу, что я наблюдаю через тестовый скрипт. Не знает никто, в чем может быть проблема? Может запись неправильная?
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
Все, нашел корень проблемы. Правильная запись выглядит так:

ProxyFCGISetEnvIf "true" PHP_ADMIN_VALUE "open_basedir=/home/optima/sites/rvp74.rf:. \n upload_tmp_dir=/home/optima/sites/rvp74.rf/tmp \n session.save_path=/home/optima/sites/rvp74.rf/tmp"

Директивы все пишутся внутри кавычек и разделяются символьным переносом строк \n
Только в таком виде все работает.
« Последнее редактирование: 22.04.2019, 17:50:05 от dm-krv »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[РЕШЕНО] Добавить класс при условии JS?

Автор warlocksp

Ответов: 21
Просмотров: 2882
Последний ответ 26.02.2020, 11:07:53
от robert
Программное создание материалов в Joomla 3.8+ [ РЕШЕНО ]

Автор dm-krv

Ответов: 36
Просмотров: 3729
Последний ответ 12.12.2019, 21:06:08
от MDenis
Бесплатный звонок с сайта, через интернет [РЕШЕНО]

Автор dm-krv

Ответов: 8
Просмотров: 917
Последний ответ 03.04.2019, 09:43:32
от dm-krv
JQuery: как проигнорировать cors при парсинге? [РЕШЕНО]

Автор dm-krv

Ответов: 20
Просмотров: 3625
Последний ответ 17.01.2019, 20:11:58
от fsv
Скроллинг к элементу с определенным классом [РЕШЕНО]

Автор dm-krv

Ответов: 1
Просмотров: 2137
Последний ответ 05.11.2018, 08:51:39
от dm-krv