क्या $ _SERVER ['REMOTE_ADDR'] पर भरोसा करना सुरक्षित है?


89

क्या भरोसा करना सुरक्षित है $_SERVER['REMOTE_ADDR']? क्या अनुरोध के हेडर को बदलकर या ऐसा कुछ किया जा सकता है?

क्या ऐसा कुछ लिखना सुरक्षित है?

if ($_SERVER['REMOTE_ADDR'] == '222.222.222.222') { // my ip address
    $grant_all_admin_rights = true;
}

3
मौजूदा उत्तरों में जोड़ते हुए, यह हमेशा IP पता होगा जो आपके सर्वर से अनुरोध करता है, लेकिन इसका मतलब यह नहीं है कि यह कंप्यूटर का आईपी पता है जिसने अनुरोध शुरू किया है। प्रॉक्सी सर्वर की कोई भी संख्या आपके और अंतिम उपयोगकर्ता के बीच में हो सकती है, और आपके निकटतम निकटतम आईपी एड्रेस आपको मिलता है।
दान ग्रॉसमैन

हां यह सुरक्षित है क्योंकि किसी अन्य ट्रिक या कुछ चीटिंग द्वारा सबटाइटल नहीं किया जा सकता है। लेकिन यह सुनिश्चित करें कि आप $ अनुदान_डाल_ड्रीम_ट्रेट्स वेरिएबल के लिए अधिक चेक जोड़ सकते हैं।
युदा प्रवीरा

किसी भी $ _SERVER चर को खराब किया जा सकता है - जैसे कर्ल_सेटॉप ($ ch, CURLOPT_HTTPHEADER, सरणी ("REMOTE_ADDR: $ ip", "HTTP_X_FORADARDED_FOR: $ ip"); तो यह पूरी तरह से संदर्भ पर निर्भर करता है: यदि हमलावर प्रतिक्रिया की उम्मीद कर रहा है, तो यह $ ip पर वापस जाएगा। यदि वे प्रतिक्रिया के बारे में परवाह नहीं करते हैं, तो वे निश्चित रूप से हेडर को खराब कर सकते हैं। यदि हेडर चेक के बाद आपका कोड इसके बजाय कहा गया है: "open_the_door_to_badguys ();" आपको कोई समस्या होगी।
टीएमजी

3
@TMG आप $_SERVER['REMOTE_ADDR']HTTP रिक्वेस्ट हेडर सेट करके वेरिएबल को खराब नहीं कर सकते । सुपरग्लोबल HTTP_में कुंजी बनाते समय PHP सभी HTTP रिक्वेस्ट हेडर को स्वचालित रूप से प्रीफ़िक्स करता है $_SERVER
MrWhite

जवाबों:


110

हां, यह सुरक्षित है। यह टीसीपी कनेक्शन का स्रोत आईपी है और इसे HTTP हेडर बदलकर प्रतिस्थापित नहीं किया जा सकता है।

एक ऐसा मामला जिसके बारे में आप चिंतित होना चाहते हैं, यदि आप एक रिवर्स प्रॉक्सी के पीछे हैं जिस स्थिति में REMOTE_ADDR हमेशा प्रॉक्सी सर्वर का IP होगा और उपयोगकर्ता IP एक HTTP हेडर में प्रदान किया जाएगा (जैसे कि X- फॉरवर्ड-फॉर )। लेकिन सामान्य उपयोग के मामले में REMOTE_ADDR पढ़ना ठीक है।


4
IP एड्रेस स्पूफिंग के बारे में क्या?
अब्दुल

1
@ अब्दुल वे लोग जो कर सकते हैं, वे आमतौर पर वही लोग होते हैं जिनकी आपके बॉक्स तक भौतिक पहुँच होती है। इतना इसके बारे में चिंता मत करो।
बेहरोज

5
@ अब्दुल आईपी स्पूफिंग केवल एक ही तरह से संदेश भेज सकता है, आप अपने आईपी को खराब नहीं कर सकते हैं और बदले में एक संदेश प्राप्त कर सकते हैं।

1
इंटरनेट रूटर्स पैकेट रूट करने के लिए स्रोत और गंतव्य आईपी की जाँच नहीं कर रहे हैं? मुझे संदेह है कि एक ख़राब पैकेट कभी भी इंटरनेट नोड्स पर गंतव्य तक पहुंच जाएगा।
विक्टर जोरास

57

$_SERVER['REMOTE_ADDR']IP पता TCP कनेक्शन चालू है। हालांकि इंटरनेट पर आईपी पते को अप्रत्यक्ष रूप से बिगाड़ने के लिए तकनीकी रूप से संभव है (बीजीपी के माध्यम से बेईमानी मार्गों की घोषणा करके), ऐसे हमलों को स्पॉट किए जाने की संभावना है और विशिष्ट हमलावर के लिए उपलब्ध नहीं हैं - मूल रूप से, आपके हमलावर का आईएसपी या वाहक पर नियंत्रण होना चाहिए। टीसीपी (अभी तक) के खिलाफ कोई संभव यूनिडायरेक्शनल स्पूफिंग हमले नहीं हैं। द्विदिश आईपी स्पूफिंग यद्यपि एक लैन पर तुच्छ है।

यह भी जान लें कि यह IPv4 नहीं, बल्कि IPv6 पता हो सकता है। आपका वर्तमान चेक उस संबंध में ठीक है, लेकिन यदि आप जाँचेंगे कि 1.2.3.4केवल कहीं भी होता है $_SERVER['REMOTE_ADDR'], तो एक हमलावर बस से जुड़ सकता है 2001:1234:5678::1.2.3.4

संक्षेप में, महत्वपूर्ण (बैंकिंग / सैन्य / संभावित क्षति> 50.000 €) अनुप्रयोगों के अलावा अन्य किसी भी चीज के लिए, आप दूरस्थ आईपी पते का उपयोग कर सकते हैं यदि आप अपने स्थानीय नेटवर्क में हमलावरों को बाहर कर सकते हैं।


4
आपको इंटरनेट प्रोटोकॉल के बारे में बहुत जानकारी है।
ब्रायन पीटरसन

@phihag, $_SERVER['REMOTE_ADDR']IP पता टीसीपी कनेक्शन पर आया है या नहीं, यह आपके SAPI पर पूरी तरह निर्भर करता है।
पचेरियर

WEP / WPA WLAN पर एक हमलावर के लिए असली ग्राहक से दूर रहने के लिए, और उस IP पते को ख़राब करने के लिए, जहाँ तक WEP और WPA दोनों में कमजोरियाँ you have been kicked off the wlanहैं, जो सही उपकरण के साथ पैकेट को ख़राब करने में आसान बनाता है । WPA downgrade testउदाहरण के लिए, google
hanshenrik

IP पता IP स्तर है जो TCP स्तर नहीं है।
विक्टर जोरास

3

जैसा कि ऊपर उल्लेख किया गया है, यह बिल्कुल सुरक्षित नहीं है। लेकिन इसका मतलब यह नहीं है, कि आपको इसका उपयोग नहीं करना चाहिए। उदाहरण के लिए COOKIE मानों की जाँच के लिए इसे प्रमाणीकरण के कुछ अन्य तरीकों के साथ जोड़कर देखें।


6
IP एड्रेस को खराब करने के बाद, http रिक्वेस्ट को बदलना और झूठी कुकीज भेजना केक का एक टुकड़ा है ..... (या कुकी का एक टुकड़ा)
Uri Goren

1
कृपया समझाएं कि "बिल्कुल सुरक्षित नहीं" से आपका क्या मतलब है
जेक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.