में रेफरर का निरीक्षण करें क्या यह जांचना संभव है कि PHP में आपकी वेबसाइट कौन दर्ज कर रहा है। मेरे पास एक वेब एप्लिकेशन है (PHP में लिखा गया है) जो उपयोगकर्ताओं को केवल कुछ विशेष वेबसाइटों से प्रवेश करने की अनुमति दे सकता है। _Request
ऑब्जेक्ट की जांच करके रेफ़रल वेबसाइटों को प्राप्त करना संभव है? यदि हां, तो कैसे?PHP
PHP
उत्तर
हां, लेकिन कुछ प्रॉक्सी और अन्य चीजों को ध्यान में रखें इस जानकारी को तोड़ दें, और इसे आसानी से जाली जा सकती है। तो इस पर भरोसा मत करो। उदाहरण के लिए, ऐसा नहीं लगता कि आपका वेब ऐप CSRF से सुरक्षित है क्योंकि आप अपने सर्वर से मेल खाने के लिए रेफरर को चेक करते हैं।
$referringSite = $_SERVER['HTTP_REFERER']; // is that spelt wrong in PHP ?
आप केवल आप URL के कुछ पार्स करने के लिए शीर्ष स्तर डोमेन पाने के लिए की आवश्यकता होगी किसी विशिष्ट डोमेन से अनुरोध अनुमति देना चाहते हैं। जैसा कि मैंने और सीखा है, यह PHP के parse_url() के साथ किया जा सकता है।
टिप्पणियों में andyk अंक के रूप में, आपको www.example.com और example.com के लिए भी अनुमति देनी होगी।
आपको 'HTTP_REFERER' कुंजी के लिए $ _SERVER सरणी की जांच करने की आवश्यकता है।
जबकि आप रेफरिंग साइट प्राप्त करने के लिए $_SERVER['HTTP_REFERER']
पर देख सकते हैं, तो उस पर खेत पर शर्त न लगाएं। ब्राउज़र इस हेडर को सेट करता है और इसे आसानी से खराब कर दिया जाता है।
यदि यह महत्वपूर्ण है कि विशिष्ट संदर्भकर्ताओं से आने वाले लोग आपकी साइट को देखते हैं, तो इस विधि का उपयोग न करें। अपनी सामग्री की सुरक्षा के लिए आपको मूल लेख की तरह एक और तरीका खोजना होगा। मैं यह नहीं कह रहा हूं कि आपको इस तकनीक का उपयोग नहीं करना चाहिए, बस ध्यान रखें कि यह मूर्ख-प्रमाण नहीं है।
बीटीडब्ल्यू, आप अपाचे स्तर using mod_rewrite पर रेफरर्स को अवरुद्ध भी कर सकते हैं।
आप रेफरर पर भरोसा नहीं कर सकते हैं। $_SERVER
सरणी से आने के बावजूद, यह वास्तव में एक उपयोगकर्ता/ब्राउज़र आपूर्ति मूल्य है और फ़ायरफ़ॉक्स RefControl addon जैसी चीजों का उपयोग करके आसानी से फिक्र किया जाता है।
हाँ एफएफ नहीं है इसका समर्थन मैं विकल्पों के लिए शिकार पर हूँ। – BenRacicot
शायद अतिरिक्त सावधानी बरतना चाहें, क्योंकि शायद आपको www.example.com और example.com दोनों को अनुमति देने की आवश्यकता है, क्योंकि ज्यादातर मामलों में, वही बात है। उल्लेख नहीं है कि HTTP_REFERER वास्तव में भरोसेमंद नहीं है। PHP मैनुअल से – andyk
, "यह उपयोगकर्ता एजेंट द्वारा निर्धारित किया गया है। सभी उपयोगकर्ता एजेंट इसे सेट नहीं करेंगे, और कुछ HTTP_REFERER को एक सुविधा के रूप में संशोधित करने की क्षमता प्रदान करते हैं। संक्षेप में, यह वास्तव में भरोसा नहीं किया जा सकता है।" – andyk
हाँ मुझे पता है कि यह भरोसा नहीं किया जा सकता है। – alex