PHP

2009-01-09 6 views
18

में रेफरर का निरीक्षण करें क्या यह जांचना संभव है कि PHP में आपकी वेबसाइट कौन दर्ज कर रहा है। मेरे पास एक वेब एप्लिकेशन है (PHP में लिखा गया है) जो उपयोगकर्ताओं को केवल कुछ विशेष वेबसाइटों से प्रवेश करने की अनुमति दे सकता है। _Request ऑब्जेक्ट की जांच करके रेफ़रल वेबसाइटों को प्राप्त करना संभव है? यदि हां, तो कैसे?PHP

उत्तर

29

हां, लेकिन कुछ प्रॉक्सी और अन्य चीजों को ध्यान में रखें इस जानकारी को तोड़ दें, और इसे आसानी से जाली जा सकती है। तो इस पर भरोसा मत करो। उदाहरण के लिए, ऐसा नहीं लगता कि आपका वेब ऐप CSRF से सुरक्षित है क्योंकि आप अपने सर्वर से मेल खाने के लिए रेफरर को चेक करते हैं।

$referringSite = $_SERVER['HTTP_REFERER']; // is that spelt wrong in PHP ? 

आप केवल आप URL के कुछ पार्स करने के लिए शीर्ष स्तर डोमेन पाने के लिए की आवश्यकता होगी किसी विशिष्ट डोमेन से अनुरोध अनुमति देना चाहते हैं। जैसा कि मैंने और सीखा है, यह PHP के parse_url() के साथ किया जा सकता है।

टिप्पणियों में andyk अंक के रूप में, आपको www.example.com और example.com के लिए भी अनुमति देनी होगी।

+0

शायद अतिरिक्त सावधानी बरतना चाहें, क्योंकि शायद आपको www.example.com और example.com दोनों को अनुमति देने की आवश्यकता है, क्योंकि ज्यादातर मामलों में, वही बात है। उल्लेख नहीं है कि HTTP_REFERER वास्तव में भरोसेमंद नहीं है। PHP मैनुअल से – andyk

+1

, "यह उपयोगकर्ता एजेंट द्वारा निर्धारित किया गया है। सभी उपयोगकर्ता एजेंट इसे सेट नहीं करेंगे, और कुछ HTTP_REFERER को एक सुविधा के रूप में संशोधित करने की क्षमता प्रदान करते हैं। संक्षेप में, यह वास्तव में भरोसा नहीं किया जा सकता है।" – andyk

+0

हाँ मुझे पता है कि यह भरोसा नहीं किया जा सकता है। – alex

0

आपको 'HTTP_REFERER' कुंजी के लिए $ _SERVER सरणी की जांच करने की आवश्यकता है।

6

जबकि आप रेफरिंग साइट प्राप्त करने के लिए $_SERVER['HTTP_REFERER'] पर देख सकते हैं, तो उस पर खेत पर शर्त न लगाएं। ब्राउज़र इस हेडर को सेट करता है और इसे आसानी से खराब कर दिया जाता है।

यदि यह महत्वपूर्ण है कि विशिष्ट संदर्भकर्ताओं से आने वाले लोग आपकी साइट को देखते हैं, तो इस विधि का उपयोग न करें। अपनी सामग्री की सुरक्षा के लिए आपको मूल लेख की तरह एक और तरीका खोजना होगा। मैं यह नहीं कह रहा हूं कि आपको इस तकनीक का उपयोग नहीं करना चाहिए, बस ध्यान रखें कि यह मूर्ख-प्रमाण नहीं है।

बीटीडब्ल्यू, आप अपाचे स्तर using mod_rewrite पर रेफरर्स को अवरुद्ध भी कर सकते हैं।

4

आप रेफरर पर भरोसा नहीं कर सकते हैं। $_SERVER सरणी से आने के बावजूद, यह वास्तव में एक उपयोगकर्ता/ब्राउज़र आपूर्ति मूल्य है और फ़ायरफ़ॉक्स RefControl addon जैसी चीजों का उपयोग करके आसानी से फिक्र किया जाता है।

+0

हाँ एफएफ नहीं है इसका समर्थन मैं विकल्पों के लिए शिकार पर हूँ। – BenRacicot

संबंधित मुद्दे

 संबंधित मुद्दे