Чи безпечне це використання директиви nginx if?


1

За їхньою документацією, ifце Зло . Вони навели кілька прикладів того, що певні конфігурації не працюватимуть, якщо ifбуде використано директиву. Вони не вникають у деталі щодо того, чому він поводиться неправильно інакше, ніж може сподіватися користувач, або наводять приклади, як переписати ці екземпляри.

Однак вони посилаються на цю статтю , яка дає рудиментарне пояснення, що if-директива в location-директиві створює ще один "псевдо- location", який ігнорує інші locationблоки.

Однак приклади здаються мені протиінтуїтивними навіть з поясненням. Як таке, я хотів дізнатися, чи безпечна моя конкретна конфігурація, а якщо ні, як можна краще переписати. Я зробив власне тестування, звичайно, і, здається, поводиться правильно. Наступний приклад - лише відповідний фрагмент файлу конфігурації:

ssl_client_verify optional;

location /public {
    try_files $uri $uri/ =404;
}

location / {
    if ($ssl_client_verify != SUCCESS)
    {
        return 403;
    }
    try_files $uri $uri/ =404;
}

Моє основне занепокоєння щодо безпеки полягає в тому, що я хочу уникати відкриття будь-якого вмісту, який не знаходиться /publicу тих, хто не має дійсного сертифіката.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.