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 cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.