Apache ใช้ X-Forwarded-For เพื่ออนุญาต


คำตอบ:


23

คุณสามารถใช้ SetEnvIf และอนุญาต:

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

1
จำไว้ว่ามันเป็นเรื่องง่ายมากที่จะปลอมแปลง X-Forwarded-For header
Olli

นอกจากนี้ยังง่ายต่อการป้องกันตัวเองจากการปลอมแปลง X-Forwarded-For header (โดยการแยกส่วนหัวนี้ที่จุดเข้าสู่สภาพแวดล้อมของคุณ)
larsks

1
พบโพสต์นี้ในขณะที่ค้นหาข้อมูลเกี่ยวกับวิธีการป้องกันส่วนหัว x-forwarded ที่ปลอมแปลงคุณคิดจะชี้ไปที่เอกสารที่เกี่ยวข้องหรือไม่
Pete

2

คุณสามารถใช้mod_rpafเพื่อให้ Apache ปฏิบัติกับ X-Forwarded-For IP เป็น IP ของไคลเอ็นต์


7
สำหรับผู้ที่เดินทางมาที่นี่จาก Google โปรดทราบว่าmod_rpafสามารถทำให้บันทึกของคุณมีประโยชน์เท่านั้น ไม่ส่งผลกระทบต่อที่อยู่ที่ใช้ในการตัดสินใจควบคุมการเข้าถึง นอกจากนี้ยังทราบว่าใน Apache 2.4 ที่mod_rpafฟังก์ชั่นที่มีให้กำเนิดโดยmod_remoteip
larsks

1
@larsks: นั่นไม่เป็นความจริง ฉันพยายามแล้วมันก็ใช้ได้ผลสำหรับฉัน!
confiq

2

คุณสามารถเขียนกฎการเขียนซ้ำเพื่อเปลี่ยนเส้นทางไปยังการตอบกลับ 403

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-For} !(1.1.1.1|2.2.2.2)
RewriteRule .* - [F]
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.