Apache, sử dụng X-Forwarded-For cho phép


13

Làm cách nào để sử dụng các tiêu đề X-Forwarded-For (ip proxy 10.1.1.x) của tôi để cho phép truy vấn HTTP?

Câu trả lời:


23

Bạn có thể sử dụng SetEnv If và Cho phép:

    <Location "/only_proxy/">
            SetEnvIf X-Forwarded-For ^10\.1\.1\. proxy_env
            Order allow,deny
            Satisfy Any
            Allow from env=proxy_env
    </Location>

1
Hãy nhớ rằng thật dễ dàng để giả mạo tiêu đề X-Forwarded-For.
— Olli

Thật dễ dàng để bảo vệ bạn khỏi các tiêu đề X-Forwarded-For giả mạo (bằng cách tước tiêu đề này tại các điểm vào môi trường của bạn).
— larsks

1
tìm thấy bài đăng này trong khi tìm kiếm thông tin về cách bảo vệ chống lại các tiêu đề x chuyển tiếp giả mạo, bạn có phiền khi chỉ vào một tài liệu có liên quan không?
— Pete

2

Bạn có thể sử dụng mod_rpaf để khiến Apache coi X-Forwarded-For IP là IP của máy khách.


7
Đối với những người tìm đường đến đây từ Google: lưu ý rằng mod_rpafchỉ có thể làm cho nhật ký của bạn hữu ích; nó không thực sự ảnh hưởng đến địa chỉ được sử dụng trong các quyết định kiểm soát truy cập. Cũng lưu ý rằng trong Apache 2.4, mod_rpafchức năng được cung cấp nguyên bản bởi mod_remoteip .
— larsks

1
@larsks: Điều đó không đúng. Tôi đã thử và nó đã làm việc cho tôi!
— confiq

2

Bạn có thể viết quy tắc viết lại để chuyển hướng đến phản hồi 403.

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-For} !(1.1.1.1|2.2.2.2)
RewriteRule .* - [F]
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 cookie và Chính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.