मेरे पास एक वेब एप्लिकेशन है जिसका उपयोग बहुत से गैर-तकनीकी उपयोगकर्ताओं द्वारा किया जाता है। मैंने पाया है कि इनमें से कई उपयोगकर्ता एप्लिकेशन के लॉगिन पेज को अपने डेस्कटॉप पर सहेज रहे हैं (जो संबंधित सीएसएस और जेएस फाइलों को भी बचाता है)। फिर, एप्लिकेशन का उपयोग शुरू करने के लिए, वे उस डेस्कटॉप आइकन पर डबल क्लिक करें जो फ़ाइल: // प्रोटोकॉल का उपयोग कर स्थानीय प्रतिलिपि दिखाता है।उपयोगकर्ताओं को स्थानीय रूप से सहेजे गए HTML लॉगिन पृष्ठ से वेब एप्लिकेशन तक पहुंचने से कैसे रोकें?
इससे बाद में समस्याएं हो सकती हैं, उदा। अगर मैं लॉगिन फॉर्म, या यूआरएल को पोस्ट करता हूं, आदि। इसके अलावा, कुछ जावास्क्रिप्ट उपयोगिताओं, उदा। PIE.htc फ़ाइल: // प्रोटोकॉल का उपयोग कर काम नहीं करता है।
जाहिर है कि उन्हें क्या करना चाहिए ब्राउज़र ब्राउज़र/पसंदीदा सहेजना, मैं उन उपयोगकर्ताओं को पहचानने और चेतावनी देने का एक तरीका ढूंढ रहा हूं, बाकी के भ्रमित किए बिना। मैं इन उपयोगकर्ताओं को सचेत करने के कुछ जावास्क्रिप्ट का उपयोग कर दिया गया है:
if (top.location.protocol == 'file:') {
alert('This application is not designed to be accessed from a desktop copy...')
}
लेकिन यह केवल उन है कि डेस्कटॉप प्रतिलिपि बचाया है के बाद से मैं जावास्क्रिप्ट के इस टुकड़े को शामिल किया है चेतावनी देगा।
क्या किसी और को यह समस्या है और वे चालाक समाधान के साथ आते हैं जिन्हें वे साझा करना चाहते हैं?
धन्यवाद
अद्यतन:
अंत में मैं प्रवेश पृष्ठ अनुरोध पर एक अस्थायी रूप से मूल्य के साथ एक कुकी सेट, और के रूप में एक छिपी हुई फ़ील्ड के रूप में एक ही मूल्य भंडारण के द्वारा ऐसा करने का फैसला किया । फिर, फॉर्म में हैंडलर सबमिट करें, जांचें कि दोनों समान हैं और यदि नहीं तो त्रुटि संदेश दिखाएं। कोई कुकी के बजाय सत्र में नॉन स्टोर कर सकता है, लेकिन मैं अनावश्यक सत्र नहीं बनाना चाहता हूं।
यदि उपयोगकर्ता ने स्थानीय रूप से लॉगिन पृष्ठ सहेजा है, तो कुकी के मुकाबले सहेजे गए फॉर्म में उनके पास अलग-अलग गैर मूल्यों की संभावना होगी (यदि उनके पास कुकी है)।
आम तौर पर एक लॉगिन फॉर्म में सीएसआरएफ सुरक्षा (जो यह है) यह नहीं जोड़ता है, लेकिन यह मेरी आवश्यकताओं को पूरा करता है। मैंने रजिस्टर, http://www.theregister.co.uk/2009/10/02/google_web_attack_protection/ पर इस तकनीक के बारे में पढ़ा है, Google ने लॉगिन अनुरोधों, http://en.wikipedia.org/wiki/Cross-site_request_forgery#Forging_login_requests के फोर्जिंग के खिलाफ सुरक्षा के लिए अपने लॉगिन फॉर्मों के लिए समान सुरक्षा लागू की है।
सच है, सहेजी गई प्रतिलिपि पर कोई कुकी नहीं होगी। इसलिए मैं कुकी को लॉगिन फॉर्म पर सेट कर सकता हूं, और मेनू पेज पर, लॉगिन के बाद अपनी उपस्थिति की जांच कर सकता हूं, अच्छा! –
क्या आप लॉगिन पेज से लॉग इन हैंडलर में सबमिट किए गए समय पर निर्भर सीएसआरएफ टोकन का उपयोग करने का सुझाव दे रहे हैं? मुझे लगता है, सीएसआरएफ सुरक्षा की तरह, मैं उन अनुरोधों का पता लगाने का प्रयास कर रहा हूं जो मेरे आवेदन से नहीं आए हैं, इसलिए यह शायद काम भी करेगा। मैं आपके सुझावों का प्रयास करूंगा और रिपोर्ट करूंगा। –