Chào mọi người, em xin hỏi là nếu mình có 1 trang web, được quyền lập trình, quản trị, là chủ tên miền thì có những phương pháp nào để phát hiện request, lượt xem của client có sử dụng proxy như VPN hay không ạ ?
Em có tìm hiểu thấy 1 số công cụ giúp phát hiện nhưng nguyên lý thì chưa hiểu
Cảm ơn sự giải đáp của mọi người ạ !
Hỏi cách phát hiện Proxy được dùng bởi Web Client
Dưới góc nhìn của một end user và web designer thường xuyên truy cập web thì mình nhận thấy đa số web phát hiện request đến từ proxy, VPN bằng cách sử dụng dịch vụ của bên thứ 3:
-
Mình thấy đa số web sử dụng cloudflare để làm DNS, request sẽ đến cloudflare trước khi đến IP server thật. Khi người dùng truy cập web mà có dùng VPN hoặc proxy thì bị cloudflare phát hiện sẽ bật Hcaptcha hay, còn google thì bật ReCaptcha.
-
Cách 2 là không chặn bằng dịch vụ DNS nữa mà chính back end của web đó sẽ sử dụng API bên thứ 3. VD: https://ipinfo.io/products/proxy-vpn-detection-api (chỉ cần cung cấp IP client thì API sẽ cho biết có phải proxy, VPN không, tương tự như dịch vụ check scam của Hiếu PC chỉ cần nhập SĐT, STK ngân hàng là biết có phải scam không )
$ curl ipinfo.io/43.241.71.120/privacy?token=$TOKEN { "vpn": true, "proxy": false, "tor": false, "relay": false, "hosting": true, "service": "" }
- Theo như kiến thức lúc hoc môn mạng máy tính mình chém gió như sau :
Trong request TCP/IP, UDP thì nó phần header với một số thông tin như user agent, data type, … thì dịch vụ check VPN/Proxy sẽ bóc tách các meta data trong request để phân loại ra - Còn theo kiến thức về môn data mining, data warehouse, data analysis, xác xuất thống kê còn sót lại từ khi mình học trong trường thì các dịch vụ check proxy/VPN họ có bigData, AI, machine learning, deep learning, … để check xem có phải một IP đến từ proxy hay VPN không (nó giống như chức năng lọc SĐT spam trên android 12 mà google mới update hay bộ lọc mail spam trong gmail)
- Đa phần proxy, VPN toàn là IP spam nên chắc trong blacklist cũng nhiều nên khả năng cao đa số IP trong list này toàn là proxy, VPN.
Trong thực tế mình thấy API check proxy, VPN có 2 tác dụng:
- Chống spam.
- Một số ngân hàng cấm dùng proxy, VPN để truy cập vì lý do bảo mật. Trường hợp này mình có gặp rồi, proxy máy nhà tự làm mà ngân hàng vẫn phát hiện ra.
Còn vì sao proxy không an toàn thì bạn có thểm xem tại đây : Proxy có khả năng lưu dữ liệu từ client gửi lên không?
Nguyên lý của VPN/Proxy detection là phát hiện dấu vết bạn để lại (fingerprint, footprint)
Ví dụ như proxy ngây thơ có thể gửi header như x-forwarded-*
-> check xem ip này khác ip request là biết đang xài proxy
Với vpn có thể khai thác WebRTC Leaking
Ngoài ra một số công ty lớn, sẽ xây dựng một file js hoặc cookie để tracking bạn. Chắc bạn cũng không lạ gì với cookie tracking, thì ngoài để làm quảng cáo, còn được dùng để lưu vết bạn lại. Khi này nếu sẽ theo dõi với 1 tập cookie có các token khác nhau, và thấy rằng có chung quá nhiều IP -> IP đó sẽ bị blacklist vì nghi vấn VPN.
Chung quy VPN/Proxy detection chủ yếu dựa vào chữ P = Private. Nếu một VPN/Proxy đảm bảo được một connection là private thì sẽ không có cách nào phát hiện được.
Em cảm ơn những câu trả lời chi tiết của mọi người nhiều ạ !