X-Forwarded-For là gì? Header làm lộ IP thật khi dùng proxy
X-Forwarded-For là gì là câu hỏi quan trọng với ai dùng proxy, vì đây là tiêu đề HTTP có thể mang theo IP thật của người dùng tới trang web. Một proxy chèn tiêu đề này thì đổi IP cũng như không. Bài này của ProxyVN giải thích X-Forwarded-For, các tiêu đề liên quan và cách tự kiểm tra proxy của mình.
Định nghĩa X-Forwarded-For là gì
Theo tài liệu của MDN, X-Forwarded-For, viết tắt XFF, là tiêu đề yêu cầu HTTP dùng để xác định địa chỉ IP gốc của máy khách khi kết nối tới máy chủ web đi qua proxy. Khi có proxy ở giữa, máy chủ chỉ thấy IP của proxy; tiêu đề này giúp truyền lại thông tin IP ban đầu.
XFF không phải chuẩn chính thức từ đầu mà là quy ước phổ biến, được hầu hết proxy, bộ cân bằng tải và CDN sử dụng. Về sau, chuẩn Forwarded ra đời để thay thế, nhưng XFF vẫn được dùng rất rộng rãi.
Cú pháp
Tiêu đề chứa danh sách địa chỉ, phân cách bằng dấu phẩy. Địa chỉ đầu tiên là máy khách gốc, các địa chỉ sau là các proxy đã chuyển tiếp:
X-Forwarded-For: 203.0.113.10
X-Forwarded-For: 203.0.113.10, 198.51.100.7, 192.0.2.44
Các địa chỉ trong ví dụ thuộc dải dành cho tài liệu, chỉ để minh hoạ.

Chuỗi địa chỉ qua nhiều proxy
Cách X-Forwarded-For là gì hoạt động qua nhiều proxy
Giả sử yêu cầu đi từ máy người dùng qua hai proxy rồi tới máy chủ:
- Proxy 1 nhận yêu cầu từ máy người dùng, thêm IP người dùng vào X-Forwarded-For rồi chuyển tiếp.
- Proxy 2 nhận yêu cầu từ proxy 1, thêm IP của proxy 1 vào cuối danh sách.
- Máy chủ thấy kết nối đến từ IP proxy 2, và đọc tiêu đề để biết chuỗi phía trước.
Mỗi chặng chỉ thêm địa chỉ của chặng ngay trước nó. Proxy cuối cùng không tự thêm IP của mình, vì máy chủ đã thấy IP đó qua kết nối.
Các tiêu đề liên quan khi tìm hiểu X-Forwarded-For là gì
- Via: cho biết yêu cầu đã đi qua proxy nào, kèm giao thức và tên hoặc mã proxy. Via không nhất thiết chứa IP người dùng, nhưng cho máy chủ biết có proxy ở giữa.
- Forwarded: chuẩn chính thức thay thế XFF, gom thông tin vào một tiêu đề với các tham số for, by, proto, host.
- X-Real-IP: tiêu đề phổ biến ở một số máy chủ, chỉ chứa một IP là máy khách gốc.
- X-Forwarded-Proto, X-Forwarded-Host: truyền lại giao thức và tên miền mà người dùng truy cập ban đầu.
Forwarded: for=203.0.113.10;proto=https;by=198.51.100.7
Via: 1.1 proxy-node-1
Theo Decodo, tiêu đề HTTP mang rất nhiều thông tin về yêu cầu, và một số tiêu đề như trên là dấu hiệu rõ ràng cho thấy có proxy ở giữa.

Ba mức ẩn danh của proxy
Ba mức ẩn danh nhìn từ X-Forwarded-For là gì
Cách proxy xử lý các tiêu đề trên quyết định mức ẩn danh của nó:
Mức |
X-Forwarded-For |
Via |
Trang web biết gì |
|---|---|---|---|
Trong suốt |
Chứa IP thật |
Có |
Biết IP thật và biết có proxy |
Ẩn danh |
Không có IP thật hoặc IP giả |
Thường có |
Không biết IP thật, biết có proxy |
Ẩn danh cao |
Không gửi |
Không gửi |
Không thấy dấu hiệu proxy trong tiêu đề |
Theo SOAX, proxy trong suốt chuyển tiếp yêu cầu mà không che IP người dùng, thường dùng trong mạng công ty, trường học để lọc và lưu bộ nhớ đệm. Proxyway mô tả proxy ẩn danh cao, hay elite, là loại không để lộ cả IP lẫn dấu hiệu dùng proxy trong tiêu đề.
Chi tiết từng mức có trong bài anonymous proxy là gì và proxy transparent là gì.
X-Forwarded-For là gì với trang HTTPS
Điểm quan trọng mà nhiều người bỏ qua: với trang HTTPS dùng qua proxy HTTP bằng lệnh CONNECT, proxy chỉ mở đường hầm và chuyển tiếp dữ liệu mã hoá. Proxy không đọc, không sửa được tiêu đề bên trong, nên không thể chèn X-Forwarded-For vào yêu cầu gửi tới trang web. Với SOCKS5 cũng vậy, proxy không can thiệp nội dung.
Vì vậy, rủi ro proxy chèn XFF chủ yếu xảy ra với trang HTTP không mã hoá, hoặc với proxy được cài chứng chỉ để giải mã HTTPS, thường gặp ở mạng doanh nghiệp. Ngày nay phần lớn trang web dùng HTTPS, nên mối lo này nhỏ hơn trước, nhưng vẫn cần kiểm tra khi chọn proxy.
X-Forwarded-For giống dòng chú thích người chuyển thư tự viết thêm lên phong bì. Phong bì đã dán kín bằng HTTPS thì người chuyển không viết thêm được.

Tự kiểm tra header
Tự kiểm tra sau khi hiểu X-Forwarded-For là gì
Để biết proxy của mình có chèn tiêu đề làm lộ IP hay không:
- Bước 1: tắt proxy, mở trang kiểm tra IP, ghi lại IP thật.
- Bước 2: bật proxy, mở một trang hiển thị tiêu đề yêu cầu bằng giao thức HTTP thường, không phải HTTPS, vì chỉ khi đó proxy mới có cơ hội chèn tiêu đề.
- Bước 3: tìm các tiêu đề X-Forwarded-For, Via, Forwarded, X-Real-IP trong danh sách.
- Bước 4: nếu thấy IP thật ở bước 1 trong các tiêu đề, proxy là loại trong suốt.
Có thể kiểm tra bằng dòng lệnh với curl, gửi yêu cầu qua proxy tới một dịch vụ trả về tiêu đề đã nhận:
curl -x http://user:[email protected]:8080 http://<dịch vụ hiển thị tiêu đề>/headers
Cách kiểm tra proxy toàn diện hơn, gồm cả tường lửa, có trong bài cách kiểm tra proxy và tường lửa.

Reverse proxy và IP thật
X-Forwarded-For là gì với người quản trị website
Ở chiều ngược lại, website đặt sau reverse proxy, CDN hay bộ cân bằng tải chỉ thấy IP của các thiết bị này. Để ghi nhật ký, chống spam theo IP khách thật, máy chủ phải đọc X-Forwarded-For do reverse proxy của chính mình thêm vào.
Không tin XFF từ nguồn không tin cậy
Bất kỳ ai cũng có thể tự gửi tiêu đề X-Forwarded-For với nội dung tuỳ ý. Nếu máy chủ tin mọi giá trị XFF, kẻ xấu có thể ghi IP giả để né giới hạn tần suất hoặc làm sai nhật ký. Cách đúng là chỉ tin XFF khi kết nối đến từ reverse proxy của mình, và lấy địa chỉ ngay trước reverse proxy trong danh sách.
Cấu hình trên Nginx
Nginx có mô-đun real_ip cho khai báo dải IP của reverse proxy tin cậy và tiêu đề chứa IP thật; ví dụ cấu hình Nginx làm reverse proxy có trong bài cấu hình Nginx làm reverse proxy. Với kết nối TCP không phải HTTP, giao thức PROXY đóng vai trò tương tự; xem bài proxy protocol là gì.
Rủi ro bảo mật khi website tin nhầm X-Forwarded-For là gì
Vì tiêu đề do phía gửi tự ghi, website tin XFF không đúng cách có thể gặp nhiều vấn đề:
- Né giới hạn tần suất: nếu hệ thống chặn theo IP đọc từ XFF, kẻ xấu chỉ cần đổi giá trị tiêu đề mỗi lần gửi để không bao giờ bị chặn.
- Vượt danh sách IP cho phép: trang quản trị chỉ cho phép IP văn phòng nhưng đọc IP từ XFF có thể bị lừa bằng tiêu đề giả.
- Làm sai nhật ký: nhật ký ghi IP giả gây khó khăn khi điều tra sự cố.
- Chèn dữ liệu độc hại: giá trị XFF không được kiểm tra có thể chứa ký tự gây lỗi khi hiển thị trong trang quản trị nhật ký.
Nguyên tắc phòng tránh: chỉ đọc XFF khi kết nối đến từ reverse proxy tin cậy của chính mình, lấy địa chỉ đúng vị trí trong chuỗi, kiểm tra định dạng IP trước khi dùng, và không dùng XFF làm cơ chế xác thực.
Lập trình viên đọc IP khách sau khi hiểu X-Forwarded-For là gì
Nhiều framework web có cấu hình riêng để xác định proxy tin cậy. Ví dụ trong Express của Node.js có thiết lập trust proxy, trong Django có thể dùng middleware kết hợp danh sách proxy tin cậy. Khi cấu hình đúng, framework tự lấy IP khách thật từ chuỗi XFF; khi cấu hình sai, hoặc tin mọi proxy, hoặc không tin proxy nào, IP ghi nhận sẽ sai.
- Xác định có bao nhiêu lớp proxy tin cậy đứng trước ứng dụng, ví dụ một CDN và một bộ cân bằng tải.
- Đọc danh sách XFF từ phải sang trái, bỏ qua số địa chỉ bằng số lớp tin cậy, địa chỉ kế tiếp là IP khách.
- Viết kiểm thử gửi tiêu đề XFF giả để chắc ứng dụng không bị lừa.
Các CDN lớn thường gửi thêm tiêu đề riêng chứa IP khách đã được họ xác minh, đơn giản hơn so với tự phân tích chuỗi XFF; quản trị viên nên dùng tiêu đề đó khi website đặt sau CDN tương ứng.
Lịch sử ngắn của X-Forwarded-For là gì
X-Forwarded-For xuất hiện từ phần mềm proxy lưu bộ nhớ đệm, khi các mạng lớn đặt proxy để giảm băng thông và cần ghi lại IP người dùng thật. Tiền tố X- vốn dành cho tiêu đề chưa chuẩn hoá. Do được dùng quá phổ biến, giới kỹ thuật đã định nghĩa tiêu đề Forwarded chính thức trong RFC 7239 với cú pháp chặt chẽ hơn. Tuy vậy, đến nay XFF vẫn là tiêu đề được hỗ trợ rộng rãi nhất, và nhiều hệ thống gửi cả hai.
Quy trình kiểm tra proxy dựa trên X-Forwarded-For là gì
- Bước 1: nhận proxy, kiểm tra kết nối và IP bằng trang kiểm tra IP.
- Bước 2: gửi yêu cầu HTTP thường qua proxy tới dịch vụ hiển thị tiêu đề.
- Bước 3: đối chiếu không có X-Forwarded-For, Via, Forwarded, X-Real-IP chứa IP thật.
- Bước 4: lặp lại với SOCKS5 nếu có, so sánh kết quả.
- Bước 5: kiểm tra thêm WebRTC và DNS trong trình duyệt, vì đó là kênh rò rỉ khác ngoài tiêu đề.
Làm một lần cho mỗi nhà cung cấp hoặc mỗi loại proxy là đủ, vì cách xử lý tiêu đề thường giống nhau trên cùng hệ thống.
Ví dụ đọc kết quả kiểm tra X-Forwarded-For là gì
Dưới đây là hai kết quả minh hoạ khi gửi yêu cầu HTTP qua hai loại proxy khác nhau tới dịch vụ hiển thị tiêu đề. Kết quả thứ nhất từ proxy trong suốt:
Host: example-headers.test
User-Agent: Mozilla/5.0 ...
Via: 1.1 cache-node
X-Forwarded-For: 203.0.113.10
Dòng X-Forwarded-For chứa 203.0.113.10, trùng với IP thật đã ghi ở bước kiểm tra đầu, nghĩa là proxy làm lộ IP. Kết quả thứ hai từ proxy ẩn danh cao:
Host: example-headers.test
User-Agent: Mozilla/5.0 ...
Accept: text/html
Không có Via, X-Forwarded-For hay Forwarded; trang web chỉ thấy IP của proxy qua kết nối và các tiêu đề bình thường của trình duyệt. Tên miền và IP trong ví dụ là giá trị minh hoạ.
Tiêu đề khác ngoài X-Forwarded-For là gì cần lưu ý
Ngoài các tiêu đề chính, một số phần mềm proxy cũ hoặc cấu hình riêng còn gửi các tiêu đề ít phổ biến hơn:
- Client-IP, X-Client-IP: chứa IP người dùng, tương tự XFF.
- X-Originating-IP: hay gặp trong hệ thống thư điện tử, cho biết IP gửi thư gốc.
- Proxy-Connection: tiêu đề cũ, xuất hiện cho thấy yêu cầu đi qua proxy.
- X-Proxy-ID và các tiêu đề tự đặt: một số proxy gắn mã riêng của mình.
Khi kiểm tra, hãy đọc toàn bộ danh sách tiêu đề chứ không chỉ tìm XFF. Bất kỳ tiêu đề nào chứa IP thật hoặc ghi rõ chữ proxy đều làm giảm mức ẩn danh. Ngược lại, tiêu đề Proxy-Authorization chứa thông tin đăng nhập proxy chỉ gửi tới máy chủ proxy, proxy chuẩn không chuyển tiếp nó tới trang web.
X-Forwarded-For là gì trong mạng doanh nghiệp, trường học
Mạng doanh nghiệp và trường học thường đặt proxy trong suốt để lọc nội dung, lưu bộ nhớ đệm và ghi nhật ký. Những proxy này thường thêm X-Forwarded-For, vì mục đích của chúng không phải ẩn danh mà là quản lý. Với người dùng trong mạng đó:
- Trang web HTTP có thể thấy IP nội bộ của máy anh em qua XFF.
- Nếu mạng cài chứng chỉ để giải mã HTTPS, proxy có thể đọc và thêm tiêu đề cả với trang HTTPS.
- Đây là chính sách của tổ chức; người dùng nên tuân thủ quy định và không dùng máy công ty cho việc cá nhân nhạy cảm.
X-Forwarded-For là gì khi thu thập dữ liệu
Khi chạy công cụ thu thập dữ liệu công khai qua proxy, một số người tự thêm X-Forwarded-For với IP ngẫu nhiên, nghĩ rằng sẽ lừa được trang web. Thực tế, website cấu hình đúng bỏ qua giá trị này, còn sự xuất hiện của tiêu đề lạ lại khiến yêu cầu trông bất thường hơn. Cách đúng là dùng proxy ẩn danh cao, giữ bộ tiêu đề giống trình duyệt thật, giới hạn tần suất và tôn trọng điều khoản trang web. Kiến thức nền về thu thập dữ liệu với proxy có trong bài web scraping proxy là gì.
X-Forwarded-For là gì so với các kênh rò rỉ IP khác
Tiêu đề chỉ là một trong nhiều kênh có thể làm lộ IP thật. Một proxy ẩn danh cao về tiêu đề vẫn có thể không đủ nếu các kênh khác rò rỉ:
- WebRTC: trình duyệt có thể tiết lộ IP thật qua kết nối WebRTC, độc lập với tiêu đề HTTP; xem bài cách tắt WebRTC.
- DNS: truy vấn tên miền đi thẳng ra nhà mạng thay vì qua proxy.
- Ứng dụng không cấu hình proxy: các phần mềm khác trên máy vẫn đi IP thật.
- Cookie và tài khoản: đăng nhập tài khoản đã gắn với IP thật trước đó vẫn liên kết danh tính.
Vì vậy, kiểm tra tiêu đề nên là một bước trong quy trình kiểm tra tổng thể, không phải bước duy nhất.
Hiểu lầm thường gặp về X-Forwarded-For là gì
- Mọi proxy đều gửi X-Forwarded-For: không. Proxy ẩn danh cao không gửi, và với HTTPS qua CONNECT, proxy không chèn được.
- XFF cho biết IP thật một cách đáng tin: không. Giá trị có thể bị giả mạo bởi bất kỳ ai gửi yêu cầu.
- VPN cũng gửi XFF: VPN thông thường không đụng tới tiêu đề HTTP.
- Có XFF là chắc bị khoá tài khoản: nhiều người dùng thật đi qua proxy công ty có XFF; nền tảng xem xét tổng thể nhiều tín hiệu.
Hiểu đúng giúp anh em không lo lắng thừa với trang HTTPS, nhưng vẫn cẩn trọng với proxy trong suốt và trang HTTP.
Quyền riêng tư liên quan X-Forwarded-For là gì
Với người dùng phổ thông, tiêu đề XFF từ proxy trong suốt có nghĩa là trang web vẫn nhận được IP thật dù tưởng đang dùng proxy. Đây là lý do không nên dùng proxy miễn phí không rõ nguồn gốc: nhiều proxy loại này là proxy trong suốt hoặc cấu hình lỗi. Ngoài ra, chủ proxy nhìn thấy toàn bộ lưu lượng HTTP không mã hoá đi qua. Chọn nhà cung cấp rõ ràng, ưu tiên HTTPS và tự kiểm tra là ba thói quen bảo vệ quyền riêng tư hiệu quả.
X-Forwarded-For là gì với proxy SOCKS5
SOCKS5 hoạt động thấp hơn tầng HTTP: nó chỉ nhận yêu cầu kết nối tới một địa chỉ và cổng rồi chuyển tiếp luồng dữ liệu, không hiểu nội dung HTTP bên trong. Vì vậy, một máy chủ SOCKS5 thông thường không thêm X-Forwarded-For, Via hay bất kỳ tiêu đề HTTP nào, kể cả với trang HTTP không mã hoá. Đây là lý do SOCKS5 thường được xem là lựa chọn gọn gàng khi muốn chắc rằng tiêu đề yêu cầu chỉ do trình duyệt tạo ra. Kiến thức về tầng hoạt động của SOCKS5 có trong bài proxy HTTP và SOCKS5.
X-Forwarded-For là gì khi chạy ứng dụng sau proxy của nhà cung cấp hosting
Nhiều dịch vụ hosting, nền tảng triển khai ứng dụng đặt sẵn bộ cân bằng tải phía trước ứng dụng của khách. Khi đó, ứng dụng nhận mọi kết nối từ IP của bộ cân bằng tải, và IP khách thật nằm trong X-Forwarded-For. Chủ ứng dụng cần đọc tài liệu của nhà cung cấp để biết:
- Có bao nhiêu lớp proxy đứng trước ứng dụng.
- Tiêu đề nào chứa IP khách đã được xác minh.
- Dải IP của bộ cân bằng tải để cấu hình danh sách tin cậy.
Cấu hình đúng giúp nhật ký, thống kê và tính năng chống lạm dụng theo IP hoạt động chính xác, đồng thời tránh rủi ro tin nhầm tiêu đề giả. Khi chuyển ứng dụng sang nhà cung cấp khác, nhớ rà soát lại cấu hình này vì số lớp proxy và tiêu đề có thể thay đổi.
Tóm tắt X-Forwarded-For là gì cho người dùng proxy
- X-Forwarded-For là tiêu đề HTTP chứa IP gốc của máy khách khi đi qua proxy.
- Proxy trong suốt gửi XFF chứa IP thật; proxy ẩn danh cao không gửi.
- Với trang HTTPS qua CONNECT và với SOCKS5, proxy không chèn được tiêu đề.
- Tự kiểm tra bằng trang HTTP hiển thị tiêu đề, đọc toàn bộ danh sách.
- Với quản trị viên: chỉ tin XFF từ reverse proxy của mình, không dùng làm cơ chế xác thực.
Chọn proxy sau khi hiểu X-Forwarded-For là gì
- Với quản lý tài khoản, thu thập dữ liệu, chọn proxy ẩn danh cao, không chèn X-Forwarded-For hay Via.
- Ưu tiên truy cập trang HTTPS để tiêu đề không bị can thiệp.
- SOCKS5 không sửa tiêu đề HTTP, phù hợp khi cần yên tâm về mặt này.
- Tự kiểm tra bằng trang HTTP hiển thị tiêu đề trước khi dùng cho việc quan trọng.
Phân loại proxy theo nhiều tiêu chí có trong bài cách phân loại proxy.
Thuê proxy ẩn danh khi đã rõ X-Forwarded-For là gì
Proxy của ProxyVN hỗ trợ HTTP và SOCKS5, xác thực user và password: dân cư tĩnh Viettel, VNPT, FPT; datacenter Việt Nam; datacenter US; proxy 4G và proxy xoay. Anh em có thể tự kiểm tra tiêu đề theo hướng dẫn ở trên ngay sau khi nhận proxy.
Anh em có thể mua proxy ẩn danh trên trang chủ ProxyVN, có hỗ trợ kỹ thuật 24/24.
Câu hỏi thường gặp về X-Forwarded-For là gì
Trình duyệt có tự gửi X-Forwarded-For không
Không. Tiêu đề này do proxy, bộ cân bằng tải thêm vào, trừ khi người dùng cài tiện ích tự chèn.
VPN có chèn X-Forwarded-For không
VPN thông thường hoạt động ở tầng mạng, không sửa tiêu đề HTTP, nên không chèn XFF.
Có nên tự thêm X-Forwarded-For giả không
Không nên. Website cấu hình đúng sẽ bỏ qua giá trị này, còn hành vi cố tình làm sai lệch thông tin có thể vi phạm điều khoản dịch vụ.
Cloudflare có gửi X-Forwarded-For không
Các CDN như Cloudflare thường gửi XFF tới máy chủ gốc kèm một tiêu đề riêng chứa IP khách. Đây là chuyện của chủ website và CDN, không ảnh hưởng tới người dùng proxy đi tới trang đó.
Proxy dân cư có chèn X-Forwarded-For không
Không phụ thuộc loại IP mà phụ thuộc phần mềm proxy của nhà cung cấp. Cách duy nhất để biết là tự kiểm tra như hướng dẫn trong bài.
Proxy xoay có chèn X-Forwarded-For không
Xoay hay tĩnh chỉ nói về việc IP đầu ra thay đổi; việc có chèn tiêu đề phụ thuộc phần mềm proxy. Với proxy xoay lấy bằng key của ProxyVN, anh em nhận cả địa chỉ HTTP và SOCKS5, có thể tự kiểm tra tiêu đề theo các bước trong bài ngay khi nhận proxy mới.
Trình duyệt antidetect có chặn được X-Forwarded-For không
Không. Tiêu đề được thêm ở phía proxy sau khi yêu cầu rời trình duyệt, nên trình duyệt không kiểm soát được. Cách tránh là chọn proxy không chèn tiêu đề và ưu tiên trang HTTPS.
Kiểm tra bằng trang HTTPS có được không
Kiểm tra bằng trang HTTPS chỉ cho biết trình duyệt gửi gì, vì proxy không chèn được tiêu đề vào kết nối mã hoá. Muốn biết proxy có chèn tiêu đề hay không, phải dùng trang HTTP thường. Nên lặp lại phép kiểm tra vài lần vào các thời điểm khác nhau, vì một số hệ thống proxy định tuyến qua nhiều máy chủ với cấu hình có thể khác nhau.
Via có làm lộ IP không
Via thường chỉ chứa tên hoặc mã proxy, không chứa IP người dùng, nhưng cho trang web biết đang có proxy ở giữa, tức không phải ẩn danh cao.
Kết luận về X-Forwarded-For là gì
Hiểu X-Forwarded-For là gì giúp anh em biết proxy trong suốt có thể làm lộ IP thật qua tiêu đề, còn HTTPS và proxy ẩn danh cao giúp tránh điều đó. Tự kiểm tra bằng trang HTTP hiển thị tiêu đề. Liên hệ Proxy.vn - Nhà cung cấp dịch vụ proxy chất lượng hàng đầu Việt Nam để được tư vấn.