VPN पछाडि PHP को REMOTE_ADDR ले वास्तवमा के भन्छ
यो तपाईंको वेब सर्भरले दिएको मान हो, सुरुङभित्रको प्रश्न होइन। अनुरोधको बाटो हेर्नुहोस्, यसलाई कसले पुनः लेख्न सक्छ जाँच्नुहोस् र पहिचान अनुप्रयोगमा राख्नुहोस्।
कसैले सोध्छ किन VPN प्रयोगकर्ता अनुप्रयोग लगमा गेटवेको पता लिएर देखिन्छ, वा दिउँसोको खानापछि बदलिएको पता लिएर देखिन्छ। उत्तर यसबाट सुरु हुन्छ कि यो मान के हो: वेब सर्भरले अनुरोधको वातावरणमा राखेको प्रविष्टि। यो सुरुङभित्रको प्रश्न होइन, प्रमाणपत्रको पहिचान होइन, र नम्बर एक व्यक्तिको हो भन्ने वाचा होइन। यीमध्ये जुनसुकै मानेर पढ्नाले फरक-फरक तरिकाले गलत आत्मविश्वासी उत्तरहरू दिन्छ।
मान सर्भरबाट आउँछ, सुरुङबाट होइन
PHP ले अनुरोधको वातावरण जसले स्क्रिप्ट चलायो त्यसबाट पाउँछ। PHP सर्भर चलको सन्दर्भ ले यी प्रविष्टिहरूलाई वेब सर्भरले बनाएको भनी वर्णन गर्छ, र तिनको उपलब्धता अनुरोध कसरी आयो भन्नेमा निर्भर हुन्छ।
VPN को कमाण्ड-लाइन हुकको रूपमा चल्ने स्क्रिप्ट पूर्ण रूपमा फरक कार्यान्वयन सन्दर्भ हो। त्यससँग वेब अनुरोध छैन, क्लाइन्ट सकेट छैन र REMOTE_ADDR छैन, त्यसैले हुकमा प्रतिलिपि गरिएको वेब कोडले गलत मानको सट्टा खाली मान दिन्छ। हुकको आफ्नै वातावरण छ, जुन डेमनले भर्छ, र त्यो छुट्टै अभिलेखित छ। त्यहाँ REMOTE_ADDR तर्फ हात बढाउनु कहिल्यै सेट नगरिएको चलतर्फ हात बढाउनु हो।
दुई लग तुलना गर्नुअघि यो भिन्नता ध्यानमा राख्नुहोस्। सायद तपाईं पृष्ठको अनुरोधको तुलना हुकसँग गर्दै हुनुहुन्छ, र त्यो कुनै तुलना होइन। पहिले कार्यान्वयन सन्दर्भ हेर्नुहोस् र त्यसपछि पता।
नम्बरमा भरोसा गर्नुअघि अनुरोधको बाटो हेर्नुहोस्
रिपोर्ट गरिएको पता वेब सर्भरले देखेको जडानको समकक्ष हो। क्लाइन्ट र त्यो सर्भरबीच जे पनि राख्नुहोस् र समकक्ष बदलिन्छ। अनुवाद, समापन र भार-सन्तुलनले प्रत्येकले अवलोकनलाई प्रयोगकर्ताबाट एक कदम टाढा लैजान्छ।
चार सामान्य बाटोले चार फरक अवलोकन दिन्छन्।
| Path to the listener | What can be reported |
|---|---|
| Client routed straight to the private listener, no translation | The client's tunnel address |
| Gateway translates the source before forwarding | The gateway's translated address |
| Reverse proxy terminates the client and opens its own backend connection | The proxy's backend address |
| Load balancer in front of two proxies | Whichever hop the server treats as its peer |
बाटो गन्तव्यको नाम, पताको परिवार र प्रत्येक अनुवाद बिन्दुसहित लेख्नुहोस्। त्यो नक्साबिना सही र गलत मान लगको एक पङ्क्तिमा उस्तै देखिन्छ। रेखाचित्रका दुई पङ्क्तिले दिउँसोभरिको बहस बचाउँछन्।
परिवर्तन केवल त्यहीँ हुन्छ जहाँ त्यो कन्फिगर छ
सर्भर वा फ्रेमवर्कले क्लाइन्टको पता जानाजान परिवर्तन गर्न सक्छ। Apache को remote-IP मोड्युल र NGINX को real-IP मोड्युल दुवैले यो गर्छन्, र PHP ले पाउने मान त्यो कन्फिगरेसन र स्क्रिप्ट ह्यान्डलरलाई दिइएका प्यारामिटरमा निर्भर हुन्छ।
अर्थात् REMOTE_ADDR सधैं अस्पर्शित TCP समकक्ष हुँदैन। त्यो सर्भरले आफ्नै नीति लागू गरेपछि रिपोर्ट गर्न रोजेको समकक्ष हो। यही भिन्नताले मान प्रमाण हो कि सजावट भनेर निर्धारण गर्छ।
सर्भरको मालिकलाई सोध्नुहोस् यो तैनाथीमा कुन क्षेत्र प्रामाणिक छ र परिवर्तन हुँदा मूल समकक्ष कसरी जोगाइन्छ। कसैले उत्तर दिन नसके लगले अझै केही प्रमाणित गर्दैन।
फर्वार्डिङ हेडर भरोसाले नपढ्नुहोस्
कल गर्नेले आफैं फर्वार्डिङ हेडर पठाउन सक्छ। कमाले छुट्याएको पहिलो प्रविष्टिलाई प्रमाणित प्रयोगकर्ता पता मान्नु भनेको जो जोडिन्छ त्यसलाई विश्वास गर्ने निर्णय हो, जुन हेडरको उद्देश्यको ठीक उल्टो हो। हेडरले एउटा शृंखला वर्णन गर्छ, र केवल विश्वसनीय तहले त्यो शृंखलाको जमानत दिन सक्छ।
सर्भर वा फ्रेमवर्कको विश्वसनीय प्रोक्सी समर्थन वास्तविक प्रोक्सी शृंखलासहित कन्फिगर गरेर प्रयोग गर्नुहोस् र त्यसले त्यो शृंखलाबाहिरका स्रोतबाट आउने मान फाल्न दिनुहोस्। हातले लेखिएको विश्लेषण त्यो ठाउँ हो जहाँ धेरै रोचक विफलता बस्छन्।
प्रोक्सीले रिपोर्ट गरेको पताले माथिको फायरवालले देख्ने प्याकेट स्रोत पनि बदल्दैन। HTTP मेटाडाटा र सञ्जाल फिल्टरिङलाई छुट्टाछुट्टै अवलोकन राख्नुहोस्, किनकि तिनले फरक प्रश्नको उत्तर दिन्छन्।
निर्णयका लागि अनुप्रयोगको पहिचान प्रयोग गर्नुहोस्
प्रयोगकर्ताको रेकर्डमा पहुँचका लागि प्रमाणित पक्ष र अनुप्रयोगको अधिकार नियममा भरोसा गर्नुहोस्। आन्तरिक पता पुनः तोकिन सक्छ, र एउटा अनुवादित पताले सयौं एकसाथ प्रयोगकर्ताको प्रतिनिधित्व गर्न सक्छ। यीमध्ये कुनै पनि गुण पता जाँचले सुधार्न सक्दैन।
यदि सञ्चालनले अनुरोधलाई VPN सत्रसँग जोड्नुपर्ने भए, अवलोकित पता र समय-छापलाई तपाईंले अभिलेख गर्नुभएको अनुवाद मोडेलअनुसार प्रामाणिक सत्र रेकर्डसँग जोड्नुहोस्। यसले रक्षा गर्न सकिने सम्बन्ध बनाउँछ; एक्लै पताले त्यसो गर्दैन।
निदानका लागि सम्पूर्ण सर्भर एरेको सट्टा आवश्यक ती थोरै क्षेत्र लग गर्नुहोस्, किनकि एरेले हेडर र प्रमाणीकरण सामग्री बोक्न सक्छ। उपयोगी निष्कर्षले यो तैनाथीमा यो मानको अर्थ के हो भन्छ, कुन मान क्लाइन्टजस्तो सबैभन्दा बढी देखिन्छ भनेर होइन।