Рейтинг:0

Настройки области хранения приватных файлов в Drupal 9.3 ($settings['file_private_path'] =)

флаг de
Abe

Я использую Drupal 9.3 и создал личную папку вне корневого каталога. Я следовал документации [соединять] и добавил следующую строку в мой файл settings.php в drupal:

$settings['file_private_path'] = '../private';

Частный файл существует за пределами моего корневого веб-каталога следующим образом: /var/www/example.com/private с веб-корнем в/var/www/example.com/html.

Я использую nginx и хочу убедиться, что приватный файл правильно защищен. Для этого я добавил этот блок:

местоположение ^~ {
    внутренний;
    псевдоним /var/www/example.com/private;
}

Правильно ли это и правильно ли я защитил личный файл/папку? В документации упоминается об этом: Обратите внимание, что веб-серверам, отличным от Apache, может потребоваться дополнительная настройка для защиты частных файловых каталогов.

Мой полный виртуальный хост Nginx (то есть файл конфигурации) показан ниже:

сервер {
    корень /var/www/example.com/html;
    индекс index.html index.htm index.nginx-debian.html index.php;
    имя_сервера example.com www.example.com;
    место расположения / {
        try_files $uri $uri/ /index.php?$args;
    }
    location = /favicon.ico { log_not_found off; доступ_лог выключен; }
        location = /robots.txt { log_not_found off; доступ_лог выключен; позволять все; }
        расположение ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
        истекает макс.;
        log_not_found выключен;
        }

    # передать PHP-скрипты на сервер FastCGI
    #
    расположение ~ \.php$ {
        try_files $uri = 404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            включить fastcgi_params;
    }

    # запретить доступ к файлам .htaccess, если корневой каталог Apache
    # совпадает с nginx
    #
    местоположение ~ /\.ht {
        отрицать все;
    }
    местоположение ^~ {
        внутренний;
        псевдоним /var/www/example.com/private;
    }

    слушать [::]:443 ssl ipv6only=on; # под управлением Certbot
    слушать 443 ssl; # под управлением Certbot
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # под управлением Certbot
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # под управлением Certbot
    включить /etc/letsencrypt/options-ssl-nginx.conf; # под управлением Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # под управлением Certbot

}

сервер {
    если ($host = example.com) {
        вернуть 301 https://$host$request_uri;
    } # управляется Certbot


    слушать 80 ;
    слушать [::]:80 ;

    имя_сервера example.com www.example.com;
    вернуть 404; # под управлением Certbot


}
Рейтинг:1
флаг de
Abe

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

## Безопасный доступ к личным файлам
    расположение ^~ /частное {
# псевдоним /var/www/example.com; ## Этот вариант также работает
    корень /var/www/example.com;
    внутренний;
    }

Это следует удалить из приведенного выше блока, потому что это неверно и не имело никакого эффекта:

местоположение ^~ {
        внутренний;
        псевдоним /var/www/example.com/private;
    }

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.