Как ограничить доступ между папками на одном виртуальном хосте

Мы планируем размещать блог WordPress и магазин электронной коммерции в одном домене, поэтому URL-адреса будут выглядеть следующим образом:

example.com <--- Magento Store
example.com/blog/ <--- WordPress Blog

Наша главная забота - безопасность магазина электронной коммерции. Мы не чувствуем себя в безопасности, размещая обе CMS в одном корне документа.

Есть ли какие-то передовые методы безопасного размещения нескольких CMS в одном домене? Мы думали о

  • перемещении части кода за пределы корневого каталога документа или
  • установке разных владельцев (или прав записи) для каждой папки CMS

Так что, если кто-то взломает блог WordPress, он не сможет для доступа к другим частям веб-сайта. Спасибо

0
задан 1 April 2021 в 20:08
2 ответа

Очевидно, он должен иметь одну из нескольких оболочек. https://www.ibm.com/support/pages/qsys2setpaseshellinfo

Как установить оболочку пользователя

https://stackoverflow.com/questions/23913957/set-default-pase-ibm-i-shell-for-individual-user

-121--479521-

Вторая доступна, и сервер приложений на этом сокете возвращает ошибку «Not found».

Скорее всего, это происходит из-за того, что nginx пересылает запрос на /app2loc на второй сервер приложений.

Измените proxy _ pass для app2 на:

location /app2loc/ {
    proxy_pass http://app2/;
}

upstream app2 {
    server unix:/var/www/html/app2/app.sock;
}

Дополнительный / в конце proxy _ pass заставляет nginx удалить префикс app2loc из URI, переданного в восходящий поток.

Не забудьте также настроить базовый URL-адрес приложения так, чтобы он включал префикс app2loc .

-121--479013-

Можно настроить несколько пулов процессов PHP-FPM в различных средах chroot.

Затем все запросы, кроме example.com/blog/ , будут перенаправлены в пул хранения PHP-FPM, а запросы /blog/ будут переданы в пул блогов.

Запуск пулов в различных средах chroot гарантирует, что один пул не сможет получить доступ к файлам для другой среды.

2
ответ дан 24 April 2021 в 01:31

Просто хотел опубликовать обновление и поделиться тем, как мы решили этот проект на нашем сервере.

  1. Для блога мы создали отдельный виртуальный хост (например, blog.example.com). Этот виртуальный хост размещается на локальном IP-адресе с определенным внутренним портом и не виден снаружи.
  2. В веб-папке блога была отдельная пользовательская группа Unix с ограниченным доступом, которая имеет доступ только к веб-папке блога
  3. Мы использовали отдельного пользователя MySQL для блога с разрешениями только для базы данных блога
  4. Наконец, мы создали прокси-перенаправление на example.com, которое указывало на отдельный виртуальный хост (example.com/blog => blog.example.com)
  5. blog.example.com использует собственный пул php-fpm для обработки PHP-скриптов .
0
ответ дан 15 July 2021 в 18:18

Теги

Похожие вопросы