हर मुफ्त प्रॉक्सी को अविश्वसनीय बुनियादी ढांचा समझें, क्योंकि वह है। ऑपरेटर गुमनाम है, फंडिंग मॉडल अस्पष्ट है, और एक ही सॉकेट एक सप्ताह में बॉटनेट, एक समझौता किए गए होम राउटर और एक शोधकर्ता के हनीपॉट के बीच घूम सकता है। इनमें से कोई भी मुफ्त प्रॉक्सी को अनुपयोगी नहीं बनाता — यह आदतों के एक छोटे से सेट को अनिवार्य बना देता है।
सामान्य हमले
खतरे नाटकीय नहीं हैं। वे उबाऊ प्रकार के हैं जो सफल होते हैं क्योंकि अधिकांश उपयोगकर्ता उनके खिलाफ बचाव करने की जहमत नहीं उठाते।
सादे टेक्स्ट HTTP पर क्रेडेंशियल चोरी। यदि आप किसी अज्ञात प्रॉक्सी के माध्यम से http:// पर कुछ भी लॉगिन करते हैं, तो ऑपरेटर पासवर्ड देख लेता है। हमेशा CONNECT के माध्यम से TLS को टनल करें या SOCKS का उपयोग करें जो स्वयं HTTPS लागू करता हो। आधुनिक लॉगिन फ्लो प्रमुख साइटों पर केवल HTTPS हैं, लेकिन लीगेसी इंट्रानेट, IoT एडमिन पेज और पुराने CMS डिप्लॉयमेंट ऐसे नहीं हैं।
हेडर और कंटेंट इंजेक्शन। एक शत्रुतापूर्ण HTTP प्रॉक्सी आपके अनुरोध के मनमाने भागों को फिर से लिख सकता है: कुकीज़ बदलना, रेफरर बदलना, ट्रैकिंग पैरामीटर इंजेक्ट करना, या कैश हेडर हटाना। वही प्रॉक्सी प्रतिक्रियाओं में कंटेंट इंजेक्ट कर सकता है — HTML में स्क्रिप्ट, JSON में रीडायरेक्ट, स्थिर पृष्ठों में विज्ञापन। यदि आप प्रॉक्सी के माध्यम से सर्वर-साइड प्रतिक्रियाएं पढ़ते हैं, तो उन्हें समझौता मानें जब तक कि आप किसी विश्वसनीय पथ से अखंडता सत्यापित न कर सकें।
SOCKS5 के माध्यम से DNS अपहरण। SOCKS5 प्रॉक्सी पर होस्टनाम हल कर सकता है। यदि प्रॉक्सी DNS रिकॉर्ड के बारे में झूठ बोलता है, तो आप ऑपरेटर द्वारा नियंत्रित सर्वर से जुड़ते हैं। अपने क्लाइंट को जहां संभव हो स्थानीय रूप से हल करने के लिए सेट करें: curl --resolve example.com:443:93.184.216.34, या कोड में, होस्टनाम के बजाय IP पास करें।
ट्रैफ़िक लॉगिंग। एक अच्छे इरादे वाला प्रॉक्सी भी आपके द्वारा लाए गए प्रत्येक URL को लॉग कर सकता है। उन खतरे मॉडलों के लिए जिनमें "इस व्यक्ति ने कौन से URL अनुरोध किए" शामिल है, हर सार्वजनिक प्रॉक्सी गलत उपकरण है। Tor या एक भुगतान वाला VPN उपयोग करें जिसमें प्रकाशित नो-लॉग नीति और विवादित समन्स का ट्रैक रिकॉर्ड हो।
क्लाइंट के विरुद्ध संसाधन थकावट। कुछ प्रॉक्सी जानबूझकर कनेक्शन को धीमा कर देते हैं, बहुत बड़ी प्रतिक्रियाएं लौटाते हैं, या डेटा भेजे बिना सॉकेट खुले रखते हैं। अपने क्लाइंट साइड पर सख्त प्रतिक्रिया-आकार सीमाएं और कनेक्शन टाइमआउट सेट करें।
बचाव, प्राथमिकता क्रम में
सब कुछ CONNECT के माध्यम से TLS के अंदर भेजें या SOCKS के माध्यम से HTTPS गंतव्य पर भेजें। कभी भी सार्वजनिक प्रॉक्सी के पीछे उन क्रेडेंशियल्स का पुन: उपयोग न करें जिन्हें आप कहीं और पुन: उपयोग करेंगे। प्रमाणपत्रों को सख्ती से मान्य करें — आकस्मिक उपयोग के लिए जारीकर्ता को पिन करना अतिरेक है, लेकिन किसी भी श्रृंखला को स्वीकार करना लापरवाही है। कनेक्ट और रीड पर छोटे टाइमआउट सेट करें। जब वर्कलोड मायने रखता है तो फोरेंसिक समीक्षा के लिए प्रॉक्सी प्रतिक्रियाओं को लॉग करें। बार-बार रोटेट करें; पांच मिनट पहले काम करने वाला प्रॉक्सी अब जरूरी नहीं कि वही प्रॉक्सी हो।
मुफ्त प्रॉक्सी वास्तव में किस लिए अच्छे हैं
तीन श्रेणियों के कार्य शोर को उचित ठहराते हैं। भौगोलिक सामग्री विविधताओं का परीक्षण: क्या आपका CDN फ्रैंकफर्ट बनाम साओ पाउलो से सही पृष्ठ प्रस्तुत करता है? सार्वजनिक, अप्रमाणित डेटा स्क्रैपिंग: खोज इंजन परिणाम, प्रति IP दर सीमा के बिना सार्वजनिक API, पहले से कहीं और अनुक्रमित सामग्री। यह सत्यापित करना कि आपका एप्लिकेशन सही व्यवहार करता है जब उसका आउटबाउंड IP लक्ष्य के लिए अपरिचित हो — IP-आधारित धोखाधड़ी ह्यूरिस्टिक्स वाले सिस्टम पर QA के लिए उपयोगी।
उनका उपयोग उसके लिए करें। विफलता दर स्वीकार करें। ऐसा कुछ भी उनके पीछे न रखें जिसे खोने का आपको दुख हो।