2011-04-21 8 views
5

मैंने सोचा कि मैं वास्तव में $_SERVER['HTTP_REFERER'] वैरिएबल गारंटी का उपयोग कर वास्तव में चालाक रहा था, मेरी स्क्रिप्ट उचित पृष्ठ से बुलाई जा रही थी।

सौभाग्य से, जब मैंने अपने परीक्षण ब्राउज़र में header('Location: yourPathHere.php') रीडायरेक्ट किया, तो यह $_SERVER['HTTP_REFERER'] चर सेट नहीं करेगा। इसलिए मैं यह http://php.net/manual/en/reserved.variables.server.php को देखा, केवल इस खोजने के लिए ...

'HTTP_REFERER'

पेज (यदि हो तो) जो वर्तमान पृष्ठ पर उपयोगकर्ता एजेंट के लिए भेजा का पता। यह उपयोगकर्ता एजेंट द्वारा निर्धारित है। सभी उपयोगकर्ता एजेंट इसे सेट नहीं करेंगे, और कुछ फीचर के रूप में HTTP_REFERER को संशोधित करने की क्षमता प्रदान करते हैं। संक्षेप में, यह वास्तव में भरोसा नहीं किया जा सकता है।

तो मेरे सवाल है: मैं कैसे गारंटी मेरा पेज एक विश्वसनीय स्रोत से पर नेविगेट किया जा रहा है कर सकते हैं?

संपादित करें: टिप्पणी अनुभाग से संबंधित प्रश्नों को स्पष्ट करने के लिए। मैं एक्सएसआरएफ (क्रॉस-साइट अनुरोध जालसाजी) से बचने की कोशिश कर रहा हूं।

+10

आप नहीं कर सकते करने के लिए अनायास ही पहुँच प्रदान करने फ़ाइल। आप किस बात से भयभीत हैं? – SLaks

+0

संक्षेप में, एक्सएसएस (क्रॉस-साइट स्क्रिप्टिंग)। – Zak

+0

@Zak: XSS कैसे "मेरे आगंतुक कहां से आ रहे हैं" से संबंधित है? मैं उलझन में, कृपया विस्तृत करें। – Piskvor

उत्तर

5

अनुरोध सत्यापन के लिए किसी भी उपयोगकर्ता द्वारा उत्पन्न इनपुट पर निर्भर किसी भी सत्यापन से लगभग बेहतर नहीं है।

आपको इस समस्या से निपटने के लिए उपलब्ध दृष्टिकोणों की मूल रूपरेखा के लिए विकिपीडिया से section on CSRF countermeasures पढ़ना चाहिए।

संक्षेप में:

वेब साइटों विभिन्न CSRF countermeasures उपलब्ध:

  • सभी फ़ॉर्म सबमिशन और पक्ष प्रभाव यूआरएल में एक गुप्त, उपयोगकर्ता-विशिष्ट टोकन की आवश्यकता होती है CSRF रोकता है, हमलावर साइट अपनी प्रस्तुतियाँ में सही टोकन नहीं डाल सकते
  • ग्राहक की आवश्यकता होती है सुरक्षा के प्रभाव (धन हस्तांतरण, आदि)
  • सत्र कुकीज़
  • के जीवनकाल सीमित के साथ किसी भी कार्रवाई करने के लिए उपयोग किए गए HTTP अनुरोध में प्रमाणीकरण डेटा प्रदान करने के लिए
  • सुनिश्चित करना है कि वहाँ कोई crossdomain.xml Flash फिल्में
+0

यह वही है जो मैं खोज रहा था, मुझे नहीं पता था कि इसे कैसे व्यक्त किया जाए। धन्यवाद! – Zak

0

क्या रेफरिंग पेज भी आपके नियंत्रण में है? यदि ऐसा है, तो कोई उपयोगकर्ता पृष्ठ ए पर जाने पर कुछ सर्वर-साइड सत्र चर सेट करने का प्रयास कर सकता है, और जब वह पृष्ठ बी तक पहुंचने का प्रयास करता है तो उन्हें जांचें, लेकिन अन्य उत्तरदाताओं ने कहा है - यह XSS को रोकने से संबंधित नहीं है ..

+0

आप सही हैं, मेरा मतलब एक्सएसआरएफ (क्रॉस-साइट अनुरोध फर्जी) कहना था। भ्रम के लिए मेरी माफ़ी। – Zak

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