2015-01-21 5 views
9

CF11 इन कुकीज़ के मूल्यों को प्रीपेड कर रहा है, जो कि एप्लिकेशन नाम का हैश दिखता है।Coldfusion में CFToken/CFID 11

CF9 में, मेरे लिए CFID के मूल्य के आधार पर है: 2219 CF11 में, यह परिवर्तन Z3ir0kan93jawdd3kz38onobced8tfgn2kc3fy8i0w884gqffsn-2219 होने की

मैं एक ही में एक CF9 और CF11 सर्वर चलाने के लिए सक्षम होने की जरूरत है पूल (जबकि हम अपग्रेड करते हैं), लेकिन कुकी मानों में अंतर का मतलब है कि यदि आप एक CF9 सर्वर पर लॉग इन करते हैं और CF11 सर्वर पर नेविगेट करते हैं, तो आप लॉग आउट हो जाएंगे।

क्या इन कुकी मूल्यों के लिए CF9 प्रारूप का उपयोग करने के लिए CF11 प्राप्त करने का कोई तरीका है?

+3

क्या आप इसके बजाय JSESSIONIDs का उपयोग करने के लिए स्विच कर सकते हैं? –

+0

संभवतः, लेकिन इसका मतलब हो सकता है कि जब हम इसे स्विच करते हैं तो उपयोगकर्ता के सत्रों को मारना। – kmc

उत्तर

2

CFID/CFTOKEN का मूल्य सुरक्षा कारणों से एक साधारण संख्यात्मक मान से स्ट्रिंग + न्यूमेरिक में बदल दिया गया था।

http://helpx.adobe.com/coldfusion/kb/predictable-cookie-session-ids-reported.html

कारण

उसके डिफ़ॉल्ट विन्यास में, एडोब ColdFusion उपयोगकर्ता सत्र प्रबंधन करने के लिए CF_ID और CF_TOKEN नामित कुकीज़ की एक जोड़ी का उपयोग करता है। इन दो कुकीज़ का उपयोग कभी-कभी एक-दूसरे के साथ किया जाता है - इन्हें कभी भी अलग से उपयोग नहीं किया जाता है।

भले ही CF_ID अनुक्रमिक है, CF_TOKEN यादृच्छिक है और अप्रत्याशित है। चूंकि यह दोनों कुकीज़ का संयोजन है जो प्रयोग किया जाता है, परिणामी संयोजन भी अप्रत्याशित है।

समाधान

अपने अनुपालन परीक्षण में इस त्रुटि को खत्म करने के लिए, आपको CF_ID और CF_TOKEN के बजाय J2EE सत्र पहचानकर्ता का उपयोग करने के लिए ColdFusion कॉन्फ़िगर कर सकते हैं।

नोट: यह समाधान आपके कोल्डफ्यूजन सर्वर को कम या ज्यादा सुरक्षित नहीं बनाता है।

तो सीएफ 11 पुराने-पुराने संख्यात्मक CF_ID मान का उपयोग करने के लिए आपकी सबसे अच्छी रुचि नहीं है।

यदि आपके पास एक ही पूल में सीएफ 9 और सीएफ 11 होने जा रहे हैं, जहां अनुरोध यादृच्छिक रूप से एक से दूसरे में उछाल सकते हैं, तो आप कई अन्य समस्याओं में भाग लेंगे। मैंने दो साल पहले सीएफ 8 से सीएफ 9 में कनवर्ट करने के एक वर्ष का बेहतर हिस्सा बिताया (हाँ, हाँ, मुझे पता है)।

उदाहरण के लिए, यदि आप किसी भी सीएफ यूआई घटकों का उपयोग करते हैं, तो आपको समस्या होगी जब सीएफ एक्स पर शुरू होने वाला अनुरोध एचटीएमएल & जेएस सीएफ वाई में जाता है, जिसने उस सुविधा के लिए जेएस फ़ंक्शंस को अपडेट किया है। हम उन सभी बाहर फट और jQuery/jQuery यूआई के लिए परिवर्तित

हम यह भी रूप में सरल कुछ इस रूप में में भाग: में

this.name = HASH(getDirectoryFromPath(getCurrentTemplatePath()));

getDirectoryFromPath() 8 में एक अपर-केस मान दिया और लोअर केस मूल्य 9 (या इसके विपरीत)।

this.name = HASH(Lcase(getDirectoryFromPath(getCurrentTemplatePath())));

क्रम में, उन्हें एक ही आवेदन नाम का उपयोग किया है और इसलिए सत्र के लिए: हम इस के लिए इसे अद्यतन करने के लिए किया था।

आप अपने पूल में सीएफ 11 चलाने से बेहतर होंगे और इसके बारे में पता लगाने के लिए एक पूर्ण प्रतिगमन परीक्षण चलाएंगे कि क्या अपडेट किया जाना चाहिए।

+0

यह सुनिश्चित नहीं है कि यह स्ट्रिंग + न्यूमेरिक में कैसे बदल रहा है सुरक्षा में मदद करता है, क्योंकि स्ट्रिंग कभी नहीं बदलेगी। पीसीआई के लिए jsession का उपयोग करने के लिए बदलना सभी आकर्षक नहीं है। सीएफ 11 को सीएफ 9 के समान ही कुकीज़ को संभालने का एक तरीका है। अगर ऐसा नहीं किया जा सकता है, तो यह हो। – kmc

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