Firebase સુરક્ષા નિયમો ફાયરસ્ટોર, રીયલટાઇમ ડેટાબેઝ અને ક્લાઉડ સ્ટોરેજ [S1] માં ડેટાને સુરક્ષિત કરવા માટે એક દાણાદાર, સર્વર-અનુક્રમિત પદ્ધતિ પ્રદાન કરે છે. કારણ કે Firebase એપ્લિકેશનો ઘણીવાર ક્લાઉડ સેવાઓ સાથે સીધી ક્લાયંટ બાજુથી ક્રિયાપ્રતિક્રિયા કરે છે, આ નિયમો [S1] બેકએન્ડ ડેટાની અનધિકૃત ઍક્સેસને અટકાવતો એકમાત્ર અવરોધ રજૂ કરે છે.
અનુમતિશીલ નિયમોની અસર
ખોટા રૂપરેખાંકિત નિયમો નોંધપાત્ર ડેટા એક્સપોઝર [S2] તરફ દોરી શકે છે. જો નિયમો અતિશય અનુમતિ આપવા માટે સેટ કરવામાં આવ્યા હોય-ઉદાહરણ તરીકે, ડિફૉલ્ટ 'ટેસ્ટ મોડ' સેટિંગ્સનો ઉપયોગ કરીને જે વૈશ્વિક ઍક્સેસને મંજૂરી આપે છે-પ્રોજેક્ટ IDનું જ્ઞાન ધરાવતો કોઈપણ વપરાશકર્તા સમગ્ર ડેટાબેઝ સામગ્રી [S2] વાંચી, સંશોધિત અથવા કાઢી શકે છે. આ તમામ ક્લાયન્ટ-સાઇડ સુરક્ષા પગલાંને બાયપાસ કરે છે અને તેના પરિણામે વપરાશકર્તાની સંવેદનશીલ માહિતી અથવા કુલ સેવામાં વિક્ષેપ [S2] થઈ શકે છે.
મૂળ કારણ: અપર્યાપ્ત અધિકૃતતા તર્ક
આ નબળાઈઓનું મૂળ કારણ સામાન્ય રીતે ચોક્કસ શરતોનો અમલ કરવામાં નિષ્ફળતા છે જે વપરાશકર્તા ઓળખ અથવા સંસાધન વિશેષતાઓ [S3] પર આધારિત ઍક્સેસને પ્રતિબંધિત કરે છે. વિકાસકર્તાઓ વારંવાર ડિફોલ્ટ રૂપરેખાંકનોને ઉત્પાદન વાતાવરણમાં સક્રિય છોડી દે છે જે request.auth ઑબ્જેક્ટ [S3] ને માન્ય કરતા નથી. request.auth નું મૂલ્યાંકન કર્યા વિના, સિસ્ટમ કાયદેસર પ્રમાણિત વપરાશકર્તા અને અનામી વિનંતીકર્તા [S3] વચ્ચે તફાવત કરી શકતી નથી.
તકનીકી ઉપાય
Firebase પર્યાવરણને સુરક્ષિત કરવા માટે ઓપન એક્સેસમાંથી મુખ્ય-ઓફ-લૉસ્ટ-પ્રિવિલેજ મોડલ તરફ જવું જરૂરી છે.
- ઓથેન્ટિકેશન લાગુ કરો:
request.authઑબ્જેક્ટ નલ [S3] નથી કે કેમ તે તપાસીને ખાતરી કરો કે તમામ સંવેદનશીલ પાથને માન્ય વપરાશકર્તા સત્રની જરૂર છે. - ઓળખ-આધારિત એક્સેસનો અમલ કરો: એવા નિયમો ગોઠવો કે જે વપરાશકર્તાના UID (
request.auth.uid) ની તુલના દસ્તાવેજની અંદરના ફીલ્ડ અથવા દસ્તાવેજ ID સાથે કરે છે તેની ખાતરી કરવા માટે કે વપરાશકર્તાઓ ફક્ત તેમના પોતાના ડેટાને જ ઍક્સેસ કરી શકે છે. - ગ્રાન્યુલર પરવાનગી સ્કોપિંગ: સંગ્રહ માટે વૈશ્વિક વાઈલ્ડકાર્ડ્સ ટાળો. તેના બદલે, સંભવિત હુમલાની સપાટી [S2] ને ઘટાડવા માટે દરેક સંગ્રહ અને પેટા-સંગ્રહ માટે ચોક્કસ નિયમો વ્યાખ્યાયિત કરો.
- ઇમ્યુલેટર સ્યુટ દ્વારા માન્યતા: સ્થાનિક રીતે સુરક્ષા નિયમોનું પરીક્ષણ કરવા માટે Firebase ઇમ્યુલેટર સ્યુટનો ઉપયોગ કરો. આ લાઇવ એન્વાયર્નમેન્ટ [S2] પર જમાવતા પહેલા વિવિધ વપરાશકર્તા વ્યક્તિઓ સામે એક્સેસ કંટ્રોલ લોજિકની ચકાસણી માટે પરવાનગી આપે છે.
FixVibe તેના માટે કેવી રીતે પરીક્ષણ કરે છે
FixVibe હવે આને ફક્ત વાંચવા માટેના BaaS સ્કેન તરીકે સમાવે છે. baas.firebase-rules સમાન મૂળના JavaScript બંડલ્સમાંથી Firebase કન્ફિગરેશન કાઢે છે, જેમાં આધુનિક initializeApp(...) બંડલ આકારનો સમાવેશ થાય છે, પછી રીયલટાઇમ ડેટાબેઝ, ફાયરસ્ટોર અને ZXVIZVCVK24 સાથે ZXVIXVIBTOKEN1 ZXCV રૂપરેખાંકન તપાસે છે. અપ્રમાણિત માત્ર વાંચવા માટેની વિનંતીઓ. ફાયરસ્ટોર માટે, તે સૌપ્રથમ રૂટ કલેક્શન લિસ્ટિંગનો પ્રયાસ કરે છે; જ્યારે સૂચિ અવરોધિત હોય, ત્યારે તે સામાન્ય સંવેદનશીલ સંગ્રહ નામોની પણ તપાસ કરે છે જેમ કે users, accounts, customers, orders, orders, users, customers messages, admin, અને settings. તે ફક્ત સફળ અનામી વાંચન અથવા સૂચિઓની જાણ કરે છે અને ગ્રાહક દસ્તાવેજની સામગ્રીને લખતા, કાઢી નાખતા અથવા સ્ટોર કરતા નથી.
