Việc sử dụng nginx if-directive này có an toàn không?


1

Theo tài liệu riêng của họ, iflà Ác . Họ đã đưa ra một số ví dụ rằng một số cấu hình nhất định sẽ không hoạt động nếu một lệnh ifđược sử dụng. Họ không đi sâu vào chi tiết về lý do tại sao nó hành xử sai khác với những gì người dùng có thể mong đợi hoặc đưa ra ví dụ về cách viết lại những trường hợp đó.

Tuy nhiên, những gì họ làm là liên kết đến bài viết này , đưa ra một lời giải thích thô sơ rằng một định ifhướng trong một định locationhướng tạo ra một "giả location" khác, mà bỏ qua các locationkhối khác .

Tuy nhiên, các ví dụ có vẻ phản trực giác với tôi, ngay cả với lời giải thích. Như vậy, tôi muốn biết liệu cấu hình cụ thể của tôi có an toàn không, và nếu không, làm thế nào nó có thể được viết lại tốt hơn. Tôi đã làm thử nghiệm của riêng tôi tất nhiên và nó dường như hành xử chính xác. Ví dụ sau đây chỉ là đoạn có liên quan của tệp cấu hình:

ssl_client_verify optional;

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

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

Mối quan tâm bảo mật chính của tôi là tôi muốn tránh tiết lộ bất kỳ nội dung nào không có trong /publicbất kỳ ai không có chứng chỉ hợp lệ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.