Рейтинг:2

Исправление обхода каталога для конфигурации nginx

флаг in

Я обнаружил, что на моем веб-сайте есть эта проблема, и я не смог ее исправить. я попробовал несколько вещей, например, проверить, заканчиваются ли родительские префиксы для директив псевдонимов Nginx разделителем каталогов, но пока безуспешно. Merge_slashes on — настройка по умолчанию. Я читал об AppArmour или SELinux. Это путь? У меня убунту 18. Другими словами, я могу скачать этот файл http://mywebsite.com///etc/passwd и я хочу избежать этого. Любая помощь приветствуется. Вот моя конфигурация:

сервер {
  слушать 80;
  имя сервера
    .mysite.com;

 вернуть 301 https://mysite.com$request_uri;
}

сервер {

имя сервера
  www.mysite.com;
    слушать 443 ssl http2;
    ssl_prefer_server_ciphers включен;
    ssl_session_cache общий: SSL: 10 м;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;
    ssl_ciphers '......
    ssl_certificate /...crt;
    ssl_certificate_key /..ключ;

    вернуть 301 https://mysite.com$request_uri;
}
сервер {

имя сервера
  мой сайт.com;
    слушать 443 ssl http2;
    ssl_prefer_server_ciphers включен;
    ssl_session_cache общий: SSL: 10 м;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;
    ssl_ciphers '...
    ssl_certificate /...crt;
    ssl_certificate_key /.....ключ;

    add_header x-frame-options «SAMEORIGIN» всегда;
    add_header x-xss-protection "1; режим=блокировка" всегда;
    add_header X-Content-Type-Options nosniff;
    add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; $

    корень /var/www/www.mysite.com;
    индекс index.php;

  client_max_body_size 10M;
  журнал_доступа /var/log/nginx/mysite.com.log;
  error_log /var/log/nginx/mysite.com.error.log ошибка;

место расположения / {
    try_files $uri $uri//index.php;
}

местоположение /магазины/ {
        индекс index.php index.html index.htm;
        переписать ^/shop/wp-json/(.*?)$ /shopping/index.php?rest_route=/$1 последним;
        try_files $uri $uri/ /shop/index.php?q=$uri&$args;
}
расположение ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        истекает через 24 часа;
        log_not_found выключен;
}

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

 }
расположение ~\.(журнал|сохранить|htaccess|json|csv|txt|xls)$ {
     отрицать все;
     error_page 403 =404 / ;
 }
    location ~* /(?:uploads|файлы)/.*\.php$ {
        отрицать все;
}
Lou_is avatar
флаг sa
Это больше похоже на вопрос конфигурации nginx, чем на контрольный вопрос. Serverfault может быть более подходящим местом.
Greg avatar
флаг in
Хорошо спасибо! Я отправлю ответ здесь, если я найду его!
флаг jp
Отвечает ли это на ваш вопрос? [Исправление обхода каталога для конфигурации nginx] (https://serverfault.com/questions/1087875/directory-traversal-fix-for-nginx-config)

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

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