2012-05-29 16 views
5

मैं सत्र अपहरण को रोकने के तरीके को समझने की कोशिश कर रहा हूं। यहां मैं क्या करने की सोच रहा था:PHP सर्वर उपयोगकर्ता एजेंट और आईपी को हाइजैकिंग को रोकने के लिए आईपी

उपयोगकर्ता आईडी सत्र के साथ, उपयोगकर्ता एजेंट और उपयोगकर्ता आईपी सत्र भी जोड़ें। प्रत्येक बार जब कोई पृष्ठ लोड होता है, तो इन सत्रों को जांचने के लिए जांच की जाएगी कि क्या वे मेल खाते हैं - क्या यह पर्याप्त होगा? उदाहरण के लिए:

<?php 

$userIp = $_SESSION['userIp']; 
$userAgent = $_SESSION['userAgent']; 

if ($userIp != $_SERVER['REMOTE_ADDR'] || $userAgent != $_SERVER['HTTP_USER_AGENT'] { 
    session_destroy(); 
} 

?> 

धन्यवाद।

उत्तर

11

यह उससे कहीं अधिक जटिल है। विभिन्न साइट्स के साथ विभिन्न प्रकार के लोगों द्वारा आपकी साइट/सेवा का उपयोग किया जाएगा। पहली बात यह है कि गलत हो सकता है अगर कोई प्रॉक्सी सर्वर से गुजर रहा है। आईपी ​​जो आपका ऐप देखेगा बदल सकता है, और सत्र वैध उपयोगकर्ता के लिए भी तोड़ देगा।

यदि आपको आईपी के साथ कुछ करने की ज़रूरत है, तो आप बहुत अधिक झूठी सकारात्मकताओं के बिना कर सकते हैं, मूल देश/क्षेत्र की जांच कर रहे हैं। यदि आप कनाडा से एक लॉगिन और भारत से दूसरे में से एक का पता लगाते हैं, तो कोई समस्या हो सकती है। फिर भी, यह मूर्ख-प्रमाण नहीं है।

उपयोगकर्ता एजेंट नकली भी बहुत आसान है: अगर मैं किसी के PHPSESSIONID प्राप्त कर सकता हूं, तो मैं निश्चित रूप से अपने उपयोगकर्ता एजेंट को भी प्राप्त कर सकता हूं। तो यहां बहुत कुछ हासिल नहीं किया गया है।

किसी के सत्र की रक्षा करने का सबसे अच्छा तरीका है HTTPS के पीछे प्रमाणित सबकुछ डालना, और यह सुनिश्चित करना कि सत्र कुकी केवल HTTPS है।

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

+0

उत्तर के लिए धन्यवाद। मैं ईमानदार होने के पहले बिंदु के बारे में भी परेशान नहीं हूं, लेकिन आपका दूसरा मान्य है। अगर मैं इसे रोकने के लिए कोई रास्ता नहीं समझ पा रहा हूं, तो मैं केवल HTTPS का उपयोग करूंगा। –

+1

धन्यवाद! वैसे, आप जिस भी विकल्प के साथ जाने का फैसला करते हैं, मैं हमेशा शीर्ष पर HTTPS जोड़ने का सुझाव देता हूं। सार्वजनिक वाईफाई हॉटस्पॉट के प्रसार का अर्थ है कि एचटीटीपीएस के बिना कुछ भी जा रहा है, हर किसी के लिए देखने के लिए काफी खुला है। –

+0

चूंकि आप http का उपयोग करना चाहते हैं, इसलिए उपयोगकर्ता उपयोगकर्ता के उपयोगकर्ता नाम और पासवर्ड को हैकर द्वारा प्राप्त कर सकता है यदि उपयोगकर्ता vpn का उपयोग नहीं करता है। सत्र के लिए भी सोचने की जरूरत नहीं है। –

1

मैं z42

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

+0

सुझाव के लिए धन्यवाद, बहुत उपयोगी! मैं इस तकनीक का उपयोग करना सुनिश्चित कर दूंगा। –

+1

आपका स्वागत है। :) –