વાસ્તવિક ઇનબોક્સ વગર OAuth રિકવરી ઇમેઇલ્સનું પરીક્ષણ કરો
OAuth રિકવરી ઇમેઇલ્સનું સરળ રીતે પરીક્ષણ કરવું સુરક્ષા જોખમો ઊભા કરે છે. ઘણી ટીમો પાસવર્ડ રિસેટ લિંક્સ એક જ શેર કરેલા મેઇલબોક્સ પર મોકલે છે. તેઓ ઇમેઇલ આવે છે કે નહીં તે તપાસે છે અને આગળ વધી જાય છે. આ પદ્ધતિ નબળી છે. તે ટોકનનો પુનઃઉપયોગ, ખોટા વપરાશકર્તાને ડિલિવરી, અને સંવેદનશીલ લોગ ડેટાને છુપાવે છે.
દરેક ટેસ્ટ રન માટે ડિસ્પોઝેબલ (disposable) ઇમેઇલ એડ્રેસનો ઉપયોગ કરો. ઇવેન્ટને અલગ કરો, તેનું નિરીક્ષણ કરો અને ડેટા ડિલીટ કરો. આનાથી મિશ્રિત ટેસ્ટ ડેટાને કારણે તમારા પરિણામો સાબિત કરવામાં મુશ્કેલી પડતી અટકશે.
એક સારા થ્રેટ મોડલ (threat model) માં આ પ્રશ્નો પૂછવા જોઈએ:
- શું સંદેશ આ ચોક્કસ રન માટે નિર્ધારિત ઇનબોક્સ સુધી પહોંચ્યો?
- શું લિંક અથવા કોડ સમયસર એક્સપાયર (expire) થાય છે?
- શું વિષય (subject) લાઇન વધુ પડતો વપરાશકર્તા ડેટા જાહેર કરે છે?
- શું નવી વિનંતી પછી જૂનું ટોકન કામ કરી શકે છે?
- શું લોગ્સ રિકવરી સિક્રેટ્સને જરૂર કરતાં વધુ સમય સુધી રાખે છે?
શ્રેષ્ઠ પદ્ધતિ એ દરેક ટેસ્ટ એક્ઝિક્યુશન માટે એક ઇનબોક્સ છે. આ દરેક લિંક અને ટાઇમસ્ટેમ્પને સિંગલ રન સાથે જોડી રાખે છે.
આ ફ્લો (flow) અનુસરો:
- એક નવું યુઝર ફિક્સ્ચર (user fixture) અથવા સેન્ડબોક્સ આઇડેન્ટિટી બનાવો.
- રિકવરી ઇમેઇલને રન-સ્કોપ્ડ (run-scoped) ઇનબોક્સ પર રૂટ કરો.
- OAuth અથવા પાસવર્ડ રિકવરી એક્શન એકવાર ટ્રિગર કરો.
- ખાતરી કરો કે બરાબર એક મેચિંગ ઇમેઇલ આવે છે.
- એક્સપાયરી અને સિંગલ-યુઝ બિહેવિયરને વેલિડેટ કરવા માટે લિંક અથવા કોડ ખોલો.
- ઇનબોક્સ અને ફિક્સ્ચર ડેટાને તરત જ નષ્ટ કરો.
જો તમારી પ્રક્રિયામાં ગઈકાલના જૂના ઇમેઇલ્સ તપાસવાની જરૂર પડતી હોય, તો તમારી પ્રક્રિયા ખામીયુક્ત છે. રિકવરીના પુરાવા ક્યારેય જૂના (stale) ડેટા પર આધારિત ન હોવા જોઈએ.
શિપિંગ (shipping) કરતા પહેલા આ મુદ્દાઓ તપાસો:
- રિસીપિયન્ટ એલિયાસ ટેસ્ટ આઇડેન્ટિટી સાથે મેચ થાય છે.
- ઇવેન્ટ માટે માત્ર એક જ માન્ય રિકવરી મેસેજ અસ્તિત્વમાં છે.
- વિષય અને પ્રિવ્યૂ સંવેદનશીલ ડેટા જાહેર કરતા નથી.
- રિકવરી URL સાચા એન્વાયરમેન્ટ (environment) તરફ નિર્દેશ કરે છે.
- ઉપયોગ અથવા એક્સપાયરી પછી ટોકન અમાન્ય બને છે.
- રીટ્રાય બિહેવિયરથી એકથી વધુ માન્ય ટોકન્સ સક્રિય રહેતા નથી.
આ સામાન્ય નિષ્ફળતાઓથી બચો:
- ઘણા ટેસ્ટ યુઝર્સ માટે એક જ ઇનબોક્સનો પુનઃઉપયોગ કરવો.
- લાંબા સમય સુધી રહેતા લોગ્સમાં રિકવરી URL સ્ટોર કરવા.
- રિકવરી વિષયોમાં સંપૂર્ણ ઇમેઇલ એડ્રેસ સામેલ કરવા.
- બીજી વિનંતી પછી જૂની લિંક્સને અમાન્ય બનાવવાનું ભૂલી જવું.
સ્ટેજિંગ ડેટા મહત્વનો છે. તેમાં ઘણીવાર વાસ્તવિક નામો અને કોન્ફિગરેશન હોય છે. સુરક્ષિત ડિફોલ્ટ્સનો ઉપયોગ કરો: ટૂંકા રીટેન્શન (retention), વન-ટાઇમ સિક્રેટ્સ અને સ્પષ્ટ ક્લીનઅપ.
સ્ત્રોત: https://dev.to/sophiax99/how-to-test-oauth-recovery-emails-without-exposing-real-inboxes-hni
