Giao thức PROXY của Squid: tin cậy người gửi trước các kiểm tra truy cập HTTP
Tách biệt việc kiểm tra người gửi của giao thức PROXY trong Squid khỏi việc cấp quyền cho miền đích và yêu cầu của máy khách.
Dùng proxy_protocol_access để tin cậy relay cung cấp siêu dữ liệu, không phải để chọn trang web được phép. Trong Squid 5–7, việc kiểm tra chạy một lần sau khi thiết lập TCP trên listener require-proxy-header, trước khi các tiêu đề yêu cầu HTTP được xử lý:
acl trusted_relay src 192.0.2.20/32
http_port 3128 require-proxy-header
proxy_protocol_access allow trusted_relay
proxy_protocol_access deny allThay địa chỉ relay trong ví dụ và giới hạn truy cập mạng tới listener này. Ở giai đoạn này Squid kiểm tra đối tác TCP thực sự trước khi chấp nhận siêu dữ liệu được cung cấp. Sau khi chấp nhận, nó dùng địa chỉ máy khách được khai báo cho các lần kiểm tra ACL và ghi nhật ký tiếp theo. Tin cậy một relay dựa trên địa chỉ máy khách mà nó khai báo sẽ đảo ngược thứ tự đó.
Giữ http_access cho các quyền về nguồn máy khách và đích đến sau này. Việc chấp nhận siêu dữ liệu không cấp quyền truy cập trang web, và ACL miền đích không thể trả lời câu hỏi trước đó về việc tin cậy người gửi.
Người gửi và người nhận phải thống nhất một phiên bản giao thức PROXY được hỗ trợ. Một máy khách HTTP thông thường không thể dùng listener có tiền tố bắt buộc này làm điểm cuối proxy thông thường. Nếu cần cả hai dạng, hãy chủ động dùng các điểm cuối tách riêng thay vì nhân đôi cùng địa chỉ lắng nghe và cổng.
Một relay đáng tin cậy có thể ảnh hưởng đến việc cấp quyền dựa trên địa chỉ thông qua danh tính máy khách mà nó cung cấp. Chỉ trao khả năng đó cho trung gian dự định.