12

के माध्यम से निजी जानकारी के लिए उपयोग को रोकने के लिए किसी उपयोगकर्ता के लॉग आउट अगर वे वापस बटन क्लिक करें, वे वापस अंतिम पृष्ठ वे बाहर प्रवेश करने से पहले पर थे करने के लिए जा सकते हैं।कैसे, उपयोगकर्ता लॉगआउट के बाद ब्राउज़र का कैश साफ़ करने के लिए 'बैक' बटन

एप्लिकेशन मैं पर काम कर रहा हूँ अक्सर (, पुस्तकालय या कंप्यूटर लैब उदाहरण के लिए) किसी सार्वजनिक कंप्यूटर पर इस्तेमाल किया जाएगा और मैं उन पिछले उपयोगकर्ता सत्र से कुछ भी देखने के लिए सक्षम किया जा रहा से रोकने के लिए चाहते हैं।

मैं ऑन रेल्स 3 और वसीयत, btw है, हालांकि ऐसा लगता है कि इस मुद्दे पर किसी भी ढांचे या लॉगिन तंत्र के साथ आ जाएगा।

समाधान निष्क्रिय करने के लिए ब्राउज़र कैशिंग हेडर का उपयोग करने के लिए/मेटा टैगों है? किसी को इस मणि को संबोधित करने वाले मणि या ट्यूटोरियल के बारे में पता है?

आपकी सलाह के लिए तत्पर।

उत्तर

2

हाँ, आप ब्राउज़र को निर्देश देने पेज कैश करने के लिए नहीं http हेडर का उपयोग करना होगा। OWASP से यह page() इस बारे में जानकारी है कि यह कैसे करें।

उपरोक्त लेख आप ब्राउज़र को निर्देश देने पेज कैश करने के लिए नहीं निम्नलिखित हैडर सेट कर सकते हैं के अनुसार:

HTTP/1.1: 
Cache-Control: no-cache 

या

HTTP/1.0: 
Pragma: no-cache 
Expires: <past date or illegal value (e.g., 0)> 

आशा इस मदद करता है।

+0

जानकारी के लिए धन्यवाद। यह सुरक्षा मुद्दे का ख्याल रखेगा, लेकिन कैशिंग बंद होने के साथ, प्रदर्शन भुगतना होगा, है ना? उपयोगकर्ताओं को प्रत्येक पृष्ठ लोड पर सभी स्थिर संपत्तियां डाउनलोड करनी होंगी। यह हल करने के लिए एक मुश्किल समस्या की तरह लगता है। इस मामले में प्रदर्शन के साथ सुरक्षा को संतुलित करने के बारे में कोई चालाक विचार? – bowsersenior

3

रेल पर होने के नाते, आप आक्रामक कैश के साथ public फ़ोल्डर में रखे गए सबकुछ को आसानी से सेट कर सकते हैं, और चेरी-पिक को अन्य "पृष्ठ" जैसे सुरक्षित रूप से कैश किया जा सकता है।

आपको Cache-Control: no-cache सेट करना चाहिए ताकि ब्राउज़र को HTML पृष्ठों, एक्सएमएल, जेएसओएन को संवेदनशील सूचनाएं (मूल रूप से कुछ भी जो उचित लॉगिन के साथ पहुंच योग्य हो) को कैश कर सके और सीएसएस और छवियों जैसी स्थिर संपत्तियों के लिए अधिक आक्रामक कैश सेट कर सके।

  • आक्रामक कैश के लिए अच्छे उम्मीदवार आपके आवेदन और सार्वजनिक पृष्ठों के भीतर उपयोग किए जाने वाले सीएसएस और छवियां हैं।
  • किसी भी कैश के लिए अच्छे उम्मीदवार लॉगिन के बाद कुछ भी सुलभ हैं (यानी यदि आप छवियों को संग्रहीत कर रहे हैं जो केवल टीआईएस मालिक के लिए पहुंच योग्य हो, तो इसे कैश नहीं किया जाना चाहिए, अगर आपके पास स्वत: उपयोगकर्ताओं के लिए अजाक्स अनुरोध है, तो एक्सएमएल कैश नहीं किया जाना चाहिए)।
5

एप्लिकेशन नियंत्रक में नीचे दिए गए कोड का उपयोग करें .. यह मेरे लिए काम करता है। आशा है कि यह आपकी मदद करेगा। धन्यवाद !!

कोड

before_filter :set_cache_buster 

def set_cache_buster 
    response.headers["Cache-Control"] = "no-cache, no-store, max-age=0, must-revalidate" 
    response.headers["Pragma"] = "no-cache" 
    response.headers["Expires"] = "Fri, 01 Jan 1990 00:00:00 GMT" 
end 
संबंधित मुद्दे