Welcome! Log In Create A New Profile

Advanced

Re[6]: Запуск php скриптов из разных директории

June 29, 2018 11:38AM
Не знаю насчет бредовости, но такое ощущение. что вы не совсем четко ее понимаете для себя.

1. Пользак - админ на своем ВПС. Вы - админ хоста.

2. Если пользак имеет доступ ФТП к директории /home/admin на ВПС, он может слить себе любой пхп файл.
Другой вариант, как он может это сделать - если у него есть шелл. Но вы можете положить пхп в '/home/user', а фтп дать '/home/user/ftp'. Технически, не важно, какие запросы делает пользак. Точнее, он может делать запросы, только разрешенные админом.
Важно, чтобы для всех правильных (с вашей точки зрения) запросов существовали локейшены. Тогда все запросы, для которых не нашлось подходящего локейшена считаем не правильными. Я обычно для таких заходов создаю мусорку типа:
location "" { return 404 ;}
Ее можно и логировать отдельно при желании.

3. Считаем, что пользак имеет ФТП только на '/home/user' , выше не поднимается. Вам нужно дать ему админку ЦМС, которая лежит в '/home/admin'. Т.е. пользак делает входящий запрос как <IP:port>/user и получает ответом хтмл - результат работы /home/admin/index.php .Но запрос может быть и такой: <IP:port>/admin/index.php, тогда беда.

Для этого и нужно проксировать запрос на бэкенд. Я ж вам сразу сказал изучайте location, rewrite, map и регексы.
Простой пример.
Допустим, входящий запрос <IP:port>/user
На него нужно дать ответом хтмл как результат работы /admin/index.php

location /user {
    rewrite "^/user$" /admin/index.php break;
    try_files   $uri
                =404
    ;
    proxy_pass <здесь ваш бэкенд>;
}

"^/user$" в кавычках, потому что здесь возможны варианты (реальный формат запроса, параметры и т.п.).

В довесок, для явного указания htm или php в запросе:
location ~ (\.html$|\.php$) { internal; }



>Пятница, 29 июня 2018, 17:36 +03:00 от al3x < nginx-forum@forum.nginx.org >:
>
>Я уже начинаю думать, что у меня какая-то бредовая идея... еще немного и я
>откажусь от нее =)
>Не знаю как еще объяснить, но попробую...
>
>Есть файлы CMS:
>/home/admin/index.php
>/home/admin/modules/module.php
>/home/admin/template/news.html
>/home/admin/template/style.css
>
>Директория юзера:
>/home/user/ - у юзера есть доступ только к этой директории.
>
>При обращении по IP сервера nginx сначала смотрит в /home/user/ и если не
>находит там index.php, то смотрит в /home/admin/index.php и отдает его.
>
>Далее /home/admin/index.php выполняет свою работу и хочет обработать файл
>template/news.html. Nginx должен проверить, нет ли этого файла в директории
>юзера /home/user/template/news.html и если есть, то отдать его. Если этого
>файла нет, то отдать из папки /home/admin/template/news.html
>
>Затем юзер захотел создать свой личный модуль и положил его в папку
>/home/user/modules/new_module.php
>и когда /home/admin/index.php загружает модули из папки /modules/ то nginx
>должен сначала проверить все файлы в директории юзера /home/user/modules/, а
>затем здесь /home/admin/modules/ и таким образом подгрузить для PHP все
>модули из двух директорий, словно из одной.
>
>Т.е. директории должны быть как бы зеркалами друг друга.
>
>Это возможно сделать?
>
>Dmitriy Lyalyuev Wrote:
>-------------------------------------------------------
>> Может я чего не понимаю, но может стоит сделать локейшн типа
>> /user_content
>> и рут выставить ​в хомяк юзера?
>> Туда же и ФТП пусть смотрит с ограничением юзера в этом каталоге.
>> А все остальное юзеру не будет доступно от слова совсем.
>>
>> Задача простая как 3 копейки и слабо имеет отношение к Nginx.
>> Или я чего-то не понимаю?
>> _______________________________________________
>> nginx-ru mailing list
>> nginx-ru@nginx.org
>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
>Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280329,280339#msg-280339
>
>_______________________________________________
>nginx-ru mailing list
>nginx-ru@nginx.org
>http://mailman.nginx.org/mailman/listinfo/nginx-ru


--
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Запуск php скриптов из разных директории

al3x June 28, 2018 03:19PM

Re: Запуск php скриптов из разных директории

CoDDoC June 29, 2018 01:42AM

Re: Запуск php скриптов из разных директории

al3x June 29, 2018 03:06AM

Re[2]: Запуск php скриптов из разных директории

CoDDoC June 29, 2018 05:36AM

Re: Re[2]: Запуск php скриптов из разных директории

al3x June 29, 2018 06:20AM

Re[4]: Запуск php скриптов из разных директории

CoDDoC June 29, 2018 07:58AM

Re: Re[4]: Запуск php скриптов из разных директории

al3x June 29, 2018 09:20AM

Re: Re[4]: Запуск php скриптов из разных директории

Dmitriy Lyalyuev June 29, 2018 10:02AM

Re: Re[4]: Запуск php скриптов из разных директории

al3x June 29, 2018 10:36AM

Re: Re[4]: Запуск php скриптов из разных директории

yanda.a June 29, 2018 10:44AM

Re: Re[4]: Запуск php скриптов из разных директории

al3x June 29, 2018 10:53AM

Re: Re[4]: Запуск php скриптов из разных директории

yanda.a July 02, 2018 02:31AM

Re: Запуск php скриптов из разных директории

Gena Makhomed June 29, 2018 11:00AM

Re: Запуск php скриптов из разных директории

Slawa Olhovchenkov June 30, 2018 06:48AM

Re: Запуск php скриптов из разных директории

Роман Москвитин June 30, 2018 07:56AM

Re: Запуск php скриптов из разных директории

Slawa Olhovchenkov June 30, 2018 08:06AM

Re: Запуск php скриптов из разных директории

Роман Москвитин June 30, 2018 08:34AM

Re[6]: Запуск php скриптов из разных директории

CoDDoC June 29, 2018 11:38AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 80
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready