आप या तो कर सकते हैं। यह आपके इच्छित सुरक्षा के स्तर पर निर्भर करता है।
ओडब्ल्यूएएसपी एंटरप्राइज़ सिक्योरिटी एपीआई (ईएसएपीआई) प्रति उपयोगकर्ता सत्र विधि में एकल टोकन का उपयोग करता है। यह शायद एक बहुत ही प्रभावी तरीका है मानते हुए कि आपके पास कोई XSS छेद नहीं है और आपके पास उचित रूप से लघु सत्र टाइमआउट हैं। यदि आप सत्र या सप्ताह के लिए सत्रों को जिंदा रहने की अनुमति देते हैं, तो यह एक अच्छा दृष्टिकोण नहीं है।
व्यक्तिगत रूप से, मुझे प्रत्येक रूप के प्रत्येक उदाहरण के लिए एक अलग टोकन का उपयोग करना मुश्किल नहीं लगता है। मैं कुंजी-मूल्य जोड़े के साथ उपयोगकर्ता के सत्र में एक संरचना संग्रहीत करता हूं। प्रत्येक आइटम की कुंजी फॉर्म की आईडी है, मान एक और संरचना है जिसमें टोकन और उस टोकन के लिए समाप्ति तिथि शामिल है। आम तौर पर मैं केवल टोकन को 10-20 मिनट तक रहने की इजाजत देता हूं, फिर यह समाप्त हो जाता है। लंबे रूपों के लिए मैं इसे एक लंबी समाप्ति समय दे सकता हूं।
यदि आप एक ही सत्र में एकाधिक ब्राउज़र टैब में एक ही फॉर्म का समर्थन करने में सक्षम होना चाहते हैं, तो मेरी विधि एक छोटी सी चालबाजी बन जाती है लेकिन अभी भी अद्वितीय फॉर्म आईडी प्राप्त करके आसानी से किया जा सकता है।
स्रोत
2011-09-15 18:02:30
आपका मतलब है, प्रत्येक प्रपत्र के प्रत्येक उदाहरण में इसका अपना टोकन है? अर्थात। '<इनपुट प्रकार =" छुपा "नाम =" टोकन_फॉर्म-पंजीकरण # 3 "मूल्य =" गुप्त "/>'? – Industrial
मुझे लगता है कि प्रति सत्र एक टोकन उचित है जब तक कि आप उन्हें http (केवल https) पर सबमिट न करें। वे सत्र आईडी के साथ कई सुरक्षा चिंताओं को साझा करते हैं। यदि आपके पास एक्सएसएस है, तो हमलावर iframes खोल सकता है, टोकन पढ़ सकता है, और सीएसआरएफ को वैसे भी कर सकता है। – Erlend
यदि आपके पास एक्सएसएस है, तो आप पहले ही खो चुके हैं। अतिरिक्त प्रति-फॉर्म नॉन आपको सहेज नहीं पाएंगे (हमलावर ताजा नॉन के साथ एक नया फॉर्म प्राप्त करने में सक्षम होगा, इसे भरें और जमा करें, जैसे उपयोगकर्ता होगा)। सीएसआरएफ के लिए प्रति उपयोगकर्ता एकल मूल्य बिल्कुल पर्याप्त है। – Kornel