Firebase Қауіпсіздік ережелері Firestore, Realtime Database және Cloud Storage [S1] жүйесіндегі деректерді қорғау үшін түйіршікті, сервермен қамтамасыз етілген механизмді қамтамасыз етеді. Firebase қолданбалары көбінесе бұл бұлттық қызметтермен тікелей клиент тарапынан өзара әрекеттесетіндіктен, бұл ережелер [S1] сервер деректеріне рұқсатсыз кіруді болдырмайтын жалғыз кедергі болып табылады.
Рұқсат етуші ережелердің әсері
Қате конфигурацияланбаған ережелер [S2] деректерінің елеулі экспозициясына әкелуі мүмкін. Ережелер тым рұқсат етуші етіп орнатылса, мысалы, жаһандық қатынасқа рұқсат беретін әдепкі «сынақ режимі» параметрлерін пайдалану — жоба идентификаторын білетін кез келген пайдаланушы [S2] дерекқор мазмұнын толық оқи алады, өзгерте немесе жоя алады. Бұл барлық клиенттік қауіпсіздік шараларын айналып өтеді және құпия пайдаланушы ақпаратының жоғалуына немесе [S2] қызметінің толық үзілуіне әкелуі мүмкін.
Түпкі себеп: авторизация логикасы жеткіліксіз
Бұл осалдықтардың негізгі себебі, әдетте, пайдаланушы идентификациясына немесе [S3] ресурс атрибуттарына негізделген қатынасты шектейтін арнайы шарттарды орындамау болып табылады. Әзірлеушілер request.auth нысанын [S3] тексермейтін өндірістік орталарда белсенді әдепкі конфигурацияларды жиі қалдырады. request.auth бағалаусыз жүйе заңды аутентификацияланған пайдаланушы мен анонимді сұраушы [S3] арасындағы айырмашылықты анықтай алмайды.
Техникалық жөндеу
Firebase ортасын қорғау ашық қатынастан негізгі артықшылықтар үлгісіне көшуді талап етеді.
- Түпнұсқалық растауды енгізу:
request.authнысанының бос [S3] емес екенін тексеру арқылы барлық сезімтал жолдар жарамды пайдаланушы сеансын қажет ететініне көз жеткізіңіз. - Сәйкестікке негізделген қатынасты іске асыру: пайдаланушылардың тек [S3] деректеріне қол жеткізе алатынына көз жеткізу үшін пайдаланушының UID кодын (
request.auth.uid) құжат ішіндегі өріспен немесе құжат идентификаторының өзімен салыстыратын ережелерді конфигурациялаңыз. - Рұқсат көлемін анықтау: жинақтар үшін жаһандық қойылмалы таңбалардан аулақ болыңыз. Оның орнына [S2] ықтимал шабуыл бетін азайту үшін әрбір жинақ пен қосалқы жинақ үшін арнайы ережелерді анықтаңыз.
- Emulator Suite арқылы тексеру: қауіпсіздік ережелерін жергілікті түрде тексеру үшін Firebase эмулятор жиынтығын пайдаланыңыз. Бұл [S2] тірі ортасына орналастыру алдында әртүрлі пайдаланушы тұлғаларына қарсы қатынасты басқару логикасын тексеруге мүмкіндік береді.
FixVibe оны қалай тексереді
FixVibe енді мұны тек оқуға арналған BaaS сканерлеу ретінде қамтиды. baas.firebase-rules Firebase конфигурациясын бір шыққан JavaScript бумаларынан, соның ішінде заманауи initializeApp(...) бума пішіндерін шығарып алады, содан кейін Realtime Database, Firestore және ZXCVFIXVIBETOKENVCuthentorage арқылы тексереді. тек оқуға арналған сұраулар. Firestore үшін ол алдымен түбір топтамасының тізімін жасайды; листинг бұғатталған кезде, ол users, accounts, customers, orders, orders, ZXCVFIXVIXZCV, сияқты жалпы сезімтал жинақ атауларын да зерттейді. messages, admin және settings. Ол тек сәтті анонимді оқулар немесе тізімдер туралы хабарлайды және тұтынушы құжатының мазмұнын жазбайды, жоймайды немесе сақтамайды.
