2009-12-23 7 views
7

मेरे पास केकफ़्पी में प्रमाणीकरण समस्या थी, जब किसी बाहरी साइट से प्रमाण-पत्र प्राप्त करने पर प्रमाणीकरण काम करेगा, और तब तुरंत खो जाए, साइट लॉग इन जानकारी के लिए फिर से संकेत दे रही है।केकफ़्पी में 'कम' सुरक्षा का उपयोग करने के क्या प्रभाव हैं?

This guy ने निर्धारित किया कि केकफ़्प सत्र कुकी बदल रही थी। उनका समाधान कम सुरक्षा को कम करना था।

लगता मध्यम या उच्च सुरक्षा केक संदर्भित के लिए एक डबल जांच करता है की तरह है ... लेकिन कम सुरक्षा के साथ ठीक काम करता है जब auth- Hotmail या Yahoo

की तरह बाहरी साइटों से संरक्षित लिंक पर क्लिक इस समाधान ने मेरे लिए भी काम किया, लेकिन केकफ़्प को 'कम' सुरक्षा में सेट करके मैं क्या खो रहा हूं?

उत्तर

7

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

जब सुरक्षा मध्यम (या उच्चतर) होती है, session.referer_check सक्षम है।

जब सुरक्षा कम होती है, तो आपके पास उपर्युक्त सुविधाओं में से कोई भी नहीं है, लेकिन यह अभी भी किसी भी औसत PHP वेबसाइट/सीएमएस के रूप में सुरक्षित है।

+0

क्या ऐसी कोई अन्य चीजें हैं जो सुरक्षा को कम होने पर बंद कर देती हैं? –

+0

नहीं, इस तथ्य के अलावा कि सत्र समय समाप्ति में परिवर्तन, केवल उन दो विशेषताओं को अक्षम कर दिया गया है। यहां देखें: http://book.cakephp.org/view/44/CakePHP- कोर- कॉन्फ़िगरेशन- वैरिएबल – deizel

0

मेरा मानना ​​है कि इसे कम करने की एकमात्र विध्वंस यह है कि सत्र समय क्रमश: उच्च या मध्यम के लिए 10 या 100 के बजाय 300 से गुणा किया जाता है और सत्र जांचता है कि आपको समस्या है।

अद्यतन: आपने पहले उच्च करने के लिए इस सेट था, तो आप भी बाहर अनुरोधों के बीच सत्र id उत्थान पर ढीला होगा।

2

ऐप/config/core.php टिप्पणियों के अनुसार, मुख्य सत्र जो मुझे पता है सत्र सत्र समय है, जिसमें आपका सत्र टाइमआउट कम संख्या से गुणा किया जाएगा।

CakePHP सुरक्षा के स्तर

किताब इस बैक अप लेता है,। 'सत्र.टाउटआउट' में परिभाषित सत्र टाइमआउट समय यहां सेटिंग्स के अनुसार गुणा किया गया है। मान्य मान: 'उच्च' = x 10 'मध्यम' = x 100 'कम' = x 300 'उच्च' और 'मध्यम' भी session.referer_check CakePHP सत्र आईडी भी अनुरोधों के बीच पुनर्जीवित कर रहे हैं सक्षम अगर 'Security.level' को 'उच्च' पर सेट किया गया है।

रेफरी: http://book.cakephp.org/view/44/CakePHP-Core-Configuration-Variables

तो दूसरी बात रेफरर जाँच लग रहा है।

session.referer_check में वह सबस्ट्रिंग है जिसमें आप प्रत्येक HTTP रेफरर को जांचना चाहते हैं। यदि रेफरर क्लाइंट द्वारा भेजा गया था और सबस्ट्रिंग नहीं मिला था, तो एम्बेडेड सत्र आईडी को अमान्य के रूप में चिह्नित किया जाएगा। खाली स्ट्रिंग के लिए डिफ़ॉल्ट।

तो इसकी प्रकृति, जो चीजें आप खो रहे हैं, वे सटीक रूप से यह निर्धारित करने की क्षमता हैं कि आप किस सत्र और किस सत्र से निपट रहे हैं।

मैं सत्र खोने के साथ एक ही समस्या में भाग गया और कई उत्तरों ने $-> requestAction() का उपयोग करने की ओर इशारा किया क्योंकि यह मूल रूप से ऐप से अनुरोध को घुमाएगा, इसलिए यह एक और सत्र के साथ बनाया जा सकता है सुरक्षा।

दूसरी चीज जो कि कई Google उत्तर फेंक दिया गया था, सत्र को बंद कर रहा था। अपने ऐप/config/core.php में चेक करें। इसका मतलब है कि सत्र की जांच नहीं की जाएगी। यह कम से कम मुझे पृष्ठ अनुरोधों के बीच सत्र जानकारी खोने से रोका।

:)

+1

किसी के लिए यह गुगल करने के लिए, 'सत्र। टाइमआउट' मान केक के हाल के संस्करणों में गुणा नहीं किया जाता है (शायद 2.0 या 2.1 आगे)। –

+0

स्पष्टीकरण, ['requestAction()'] (http://book.cakephp.org/2.0/en/controllers.html#Controller::requestAction) मानक अनुरोध हैंडलिंग तर्क के माध्यम से प्रोग्रामेटिक रूप से एक क्रिया निष्पादित करता है जैसे कि यह वास्तविक था निवेदन। कर्ल इत्यादि का कोई उपयोग नहीं। –

1

दो बातें करने के लिए होता है जब 'निम्न'

1) समय-समाप्ति सेट बड़ा है

2) यदि सत्र highjacking आसान है, तो यह आसान हो जाएगा! चूंकि सत्र 'उच्च' पर सेट होने पर अनुरोधों के बीच पुन: उत्पन्न होता है!

और कुछ भी नहीं।

जिस तरह से आप किसी विशिष्ट पृष्ठ की सुरक्षा स्तर या सत्र टाइमआउट या दोनों को बदल सकते हैं द्वारा

... तो यह नहीं है नो-पूर्ववत पसंद

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