2008-08-11 22 views
9

में सत्र निर्धारण को हल करने के लिए मुझे जेबॉस में चल रहे जावा वेब एप्लिकेशन में Session Fixation, एक विशेष प्रकार का सत्र अपहरण रोकने की आवश्यकता है। हालांकि, ऐसा लगता है कि मानक मुहावरे doesn't work in JBoss। क्या यह चारों ओर काम किया जा सकता है?जेबॉस

उत्तर

8

This defect (here मिला) समाधान के रास्ते को इंगित करता है। जेबॉस में चलने वाले टोमकैट उदाहरण को "गलत" के बजाय खाली सत्रपैथ = "सत्य" के साथ कॉन्फ़िगर किया गया है, जो डिफ़ॉल्ट है। इसे .../deploy/jboss-web.deployer/server.xml में संशोधित किया जा सकता है; HTTP और AJP कनेक्टर दोनों में यह विकल्प है।

सुविधा का उपयोग संदर्भ पथ को समाप्त करने के लिए किया जाता है (उदाहरण के लिए। "Foo" http://example.com/foo में) JSESSIONID कुकी में शामिल होने से। इसे गलत पर सेट करने से उन अनुप्रयोगों को तोड़ दिया जाएगा जो क्रॉस-एप्लिकेशन प्रमाणीकरण पर भरोसा करते हैं, जिसमें कुछ पोर्टल ढांचे का उपयोग करके निर्मित सामग्री शामिल होती है। हालांकि, सवाल में आवेदन को नकारात्मक रूप से प्रभावित नहीं किया गया था।

+0

मैं JBoss 6.1 के साथ काम कर रहा हूँ और सिर्फ इस मुद्दे मारा। मेरे server.xml में कोई खाली सत्रपैथ विकल्प नहीं है। तो, संस्करण 6.1 के लिए यह कैसे किया जा सकता है? –

+1

यदि कोई और दिलचस्पी लेता है, तो मुझे एक समाधान मिला। इस धागे में @ आरपी- के उत्तर की तलाश करें: http://stackoverflow.com/questions/11028145/listening-for-login-events-in-jboss-as-6 –

0

यह समस्या और विशिष्ट मामला जिसमें यह होता है वह टॉमकैट के साथ-साथ जेबॉस में एक समस्या है। टॉमकैट खाली सत्रपैथ = "सच" प्रभाव साझा करता है (और वास्तव में जेबॉस इसे टॉमकैट से प्राप्त करता है)।

यह वास्तव में टॉमकैट और जेबॉस में एक बग जैसा लगता है जब आप सत्र निर्धारण हमलों को रोकने की कोशिश कर रहे हैं लेकिन सर्वलेट spec (कम से कम संस्करण 2.3) वास्तव में किसी भी विशिष्ट तर्क के अनुसार JSESSIONID को परिभाषित या परिभाषित करने की आवश्यकता नहीं है। शायद इसे बाद के संस्करणों में साफ कर दिया गया है।

0

एक वर्कअराउंड सत्र में ग्राहक पते को स्टोर करना है। एक प्रतिक्रिया रैपर को सत्र में सेट क्लाइंट एड्रेस को मान्य करना चाहिए, जो सत्र तक पहुंचने जैसा ही है।

+0

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

0

मुझे चार मीटर में से एक से कोड सेटिंग स्निपेट नीचे पता चला। और मैंने लाइनों के नीचे जोड़ा। लेकिन जब मैं एप्लिकेशन में लॉग इन करने से पहले और बाद में सत्र आईडी मुद्रित करता हूं तो यह वही होता है। मैं सत्र निर्धारण का परीक्षण कैसे करूं?

  1. डी: \ jboss-5.1.0.GA \ bin \ run.cof फ़ाइल और नीचे पंक्ति जोड़ें। सेट "JAVA_OPTS =% JAVA_OPTS% -Dorg.apache.catalina.connector.Request.SESSION_ID_CHECK = false"

  2. jboss एप्लिकेशन में से प्रत्येक context.xml में

    । डी: \ jboss-5.1.0.GA \ सर्वर \ डिफ़ॉल्ट \ तैनाती \ jbossweb.sar \ context.xml