मुख्य सामग्री पर जाएँ

SaaS session management और cookie security: व्यावहारिक मार्गदर्शिका

Secure cookie settings, session renewal, expiry, logout और revocation controls से SaaS sign-in sessions सुरक्षित करें; साथ में जाँचने योग्य implementation checklist।

इस मार्गदर्शिका में

Secure session management क्या है?

Session से SaaS service व्यक्ति को हर request पर credentials पूछे बिना याद रखती है कि उसने authentication किया है। Session identifier एक bearer credential है: इसे चुराने या पहले से तय कर देने वाला व्यक्ति user की तरह काम कर सकता है, जब तक service इसे invalid न करे। इसलिए सुरक्षित session management में पूरा lifecycle—बनना, browser में रखना, renew करना, expire करना, logout और compromise के बाद response—शामिल है; केवल HTTPS होना पर्याप्त नहीं।

Protected cookie में server-managed session identifier रखें

Cryptographically secure random generator से अनुमान लगाना कठिन, opaque session ID बनाएँ। Account data, permissions या secrets को readable cookie में न रखें; उन्हें server पर रखें। Cookie में `Secure`, `HttpOnly` और स्पष्ट `SameSite=Lax` या `Strict` policy लगाएँ। जहाँ compatible हो, `Path=/` और बिना `Domain` attribute वाला `__Host-` cookie sibling subdomain से cookie set होने का जोखिम घटा सकता है।

इस बिंदु के स्रोत: OWASP Session Management Cheat Sheet

Sign-in और privilege बदलने पर session renew करें

Login, MFA पूरा होने, account recovery, role elevation या privilege बदलने के बाद नया session ID जारी करें। पुराना ID बंद करें ताकि authentication से पहले लगाया गया ID काम न करता रहे। URL से session ID स्वीकार न करें और client को उसका मूल्य चुनने न दें। इससे session fixation और replay का जोखिम घटता है।

इस बिंदु के स्रोत: OWASP Session Management Cheat Sheet

Idle expiry और absolute expiry दोनों तय करें

Product की sensitivity के अनुसार idle timeout रखें और ऐसी absolute lifetime भी रखें जिसे background traffic हमेशा आगे न बढ़ा सके। Logout, password reset, administrator revocation या पुष्ट compromise पर server-side session जल्दी invalid होना चाहिए। Expiry को सरल भाषा में बताएँ और दूसरे devices से सुरक्षित sign-out का विकल्प दें।

इस बिंदु के स्रोत: OWASP Session Management Cheat Sheet
Session lifecycle जाँच worksheet
घटनाअपेक्षित session परिणामServer-side जाँचजिम्मेदार व्यक्ति / प्रमाण
Sign-in या MFA पूरा होनानई ID; पुरानी ID बंद
Idle और absolute timeoutSession अस्वीकार हो
Logout / password resetSession revoke हो
Privilege या tenant बदलनानई ID और permissions

SaaS product session cookies को कैसे सुरक्षित रखे?

Session cookies को URL और browser storage से बाहर रखें

URL browser history, referrer headers, analytics, screenshots और server logs में आ सकता है। Query string या fragment में session identifier न रखें। पारंपरिक web app में `HttpOnly` cookie, local storage की तुलना में JavaScript से सीधी पहुँच घटाती है; इससे injected script authenticated requests नहीं कर पाएगी, इसकी गारंटी नहीं। इसलिए XSS रोकना भी जरूरी है।

इस बिंदु के स्रोत: OWASP Session Management Cheat Sheet

SameSite को CSRF सुरक्षा की एक परत मानें

`SameSite` policy कुछ cross-site requests सीमित कर सकती है, लेकिन browser और product flow के अनुसार व्यवहार बदलता है। State बदलने वाली requests पर उचित CSRF सुरक्षा लगाएँ, जहाँ उपयुक्त हो request origin जाँचें और read-only काम के लिए safe HTTP methods रखें। यदि cross-site flow के लिए `SameSite=None` चाहिए, तो `Secure` भी लगाएँ और कारण दर्ज करें।

इस बिंदु के स्रोत: OWASP Session Management Cheat Sheet

Private pages और session responses को cache होने से रोकें

Session credentials या संवेदनशील account content वाले responses पर `Cache-Control: no-store` सहित कठोर cache controls लगाएँ। Browser के साथ CDN और reverse proxy भी जाँचें। Logout पर browser cookie हटाएँ और server-side session revoke करें; केवल browser copy मिटाने से चुराई गई copy बंद नहीं होती।

इस बिंदु के स्रोत: OWASP Session Management Cheat Sheet

Session expiry, revocation और account safety कैसे test करें?

High-impact account बदलाव से पहले फिर authentication लें

Recovery details बदलने, administrator जोड़ने, credentials rotate करने या बहुत संवेदनशील जानकारी export करने से पहले ताज़ा authentication माँगें। पुष्टि को उसी काम से जोड़ें और बार-बार कोशिशों की rate limit रखें। यह हर request पर authorization जाँच का विकल्प नहीं, बल्कि अतिरिक्त सुरक्षा है।

इस बिंदु के स्रोत: OWASP Session Management Cheat Sheet

कई devices और services में revocation लागू करें

User के अनुरोध या incident पर active sessions ढूँढ़ने और एक या सभी revoke करने का तरीका रखें। यदि कई application instances session स्वीकार करते हैं, तो जाँचें कि revocation हर verifier तक जल्दी पहुँचती है; cache या signed-token व्यवस्था logout के बाद भी access चालू रख सकती है। Raw session IDs log न करें; सुरक्षित correlation value इस्तेमाल करें।

इस बिंदु के स्रोत: OWASP Session Management Cheat Sheet

Browser और server को साथ में test करें

Login, session rotation, cross-site requests, idle और absolute expiry, logout, password reset, account suspension और administrator revocation का अभ्यास करें। Actual response में cookie attributes देखें और पुष्टि करें कि rotation या revocation के बाद पुरानी ID अस्वीकार होती है। Supported browsers, mobile web views और assistive technology वाले उपयोग की भी जाँच करें।

इस बिंदु के स्रोत: OWASP Session Management Cheat Sheet

SaaS session security के सवाल

क्या केवल HTTPS session cookie को सुरक्षित करता है?

नहीं। HTTPS traffic को transit में सुरक्षित करता है, लेकिन cookie पर `Secure` attribute भी होना चाहिए ताकि browser किसी गलती या attacker के नियंत्रित HTTP request में credential न भेजे। पूरी site पर HTTPS रखें और cookie को अलग से सुरक्षित करें।

इस बिंदु के स्रोत: OWASP Session Management Cheat Sheet

क्या HttpOnly cross-site scripting रोकता है?

नहीं। `HttpOnly` page scripts को cookie सीधे पढ़ने से रोकता है, लेकिन injected script browser से authenticated request भेज सकती है। Context के अनुसार output handling, सुरक्षित frameworks, content-security controls और testing से XSS रोकें।

इस बिंदु के स्रोत: OWASP Session Management Cheat Sheet

क्या SameSite, CSRF token की जगह ले सकता है?

नहीं। SameSite अतिरिक्त सुरक्षा है, पर हर browser और workflow के लिए पूरी CSRF रणनीति नहीं। Framework का समर्थित CSRF control इस्तेमाल करें और state-changing requests जाँचें, खासकर जब product में cross-origin integrations हों।

इस बिंदु के स्रोत: OWASP Session Management Cheat Sheet

‘हर जगह से logout’ चुनने पर क्या होना चाहिए?

Product को उस account के सभी server-recognized sessions revoke करने, मौजूदा browser cookie साफ करने और यह बताने में सक्षम होना चाहिए कि दूसरी trusted integrations या लंबी अवधि वाले credentials को अलग से revoke करना पड़ सकता है। यह व्यवहार अलग-अलग regions और application instances में test करें।

इस बिंदु के स्रोत: OWASP Session Management Cheat Sheet