Firebase ਸੁਰੱਖਿਆ ਨਿਯਮ ਫਾਇਰਸਟੋਰ, ਰੀਅਲਟਾਈਮ ਡੇਟਾਬੇਸ, ਅਤੇ ਕਲਾਉਡ ਸਟੋਰੇਜ [S1] ਵਿੱਚ ਡੇਟਾ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕਰਨ ਲਈ ਇੱਕ ਦਾਣੇਦਾਰ, ਸਰਵਰ-ਲਾਗੂ ਵਿਧੀ ਪ੍ਰਦਾਨ ਕਰਦੇ ਹਨ। ਕਿਉਂਕਿ Firebase ਐਪਲੀਕੇਸ਼ਨ ਅਕਸਰ ਇਹਨਾਂ ਕਲਾਉਡ ਸੇਵਾਵਾਂ ਨਾਲ ਸਿੱਧਾ ਕਲਾਇੰਟ ਸਾਈਡ ਤੋਂ ਇੰਟਰੈਕਟ ਕਰਦੇ ਹਨ, ਇਹ ਨਿਯਮ [S1] ਬੈਕਐਂਡ ਡੇਟਾ ਤੱਕ ਅਣਅਧਿਕਾਰਤ ਪਹੁੰਚ ਨੂੰ ਰੋਕਣ ਲਈ ਇੱਕੋ ਇੱਕ ਰੁਕਾਵਟ ਨੂੰ ਦਰਸਾਉਂਦੇ ਹਨ।
ਆਗਿਆਕਾਰੀ ਨਿਯਮਾਂ ਦਾ ਪ੍ਰਭਾਵ
ਗਲਤ ਸੰਰਚਨਾ ਕੀਤੇ ਨਿਯਮ [S2] ਮਹੱਤਵਪੂਰਨ ਡੇਟਾ ਐਕਸਪੋਜ਼ਰ ਦੀ ਅਗਵਾਈ ਕਰ ਸਕਦੇ ਹਨ। ਜੇਕਰ ਨਿਯਮ ਬਹੁਤ ਜ਼ਿਆਦਾ ਇਜਾਜ਼ਤ ਦੇਣ ਵਾਲੇ ਹੋਣ ਲਈ ਸੈੱਟ ਕੀਤੇ ਗਏ ਹਨ-ਉਦਾਹਰਨ ਲਈ, ਡਿਫੌਲਟ 'ਟੈਸਟ ਮੋਡ' ਸੈਟਿੰਗਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਜੋ ਗਲੋਬਲ ਪਹੁੰਚ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੇ ਹਨ-ਪ੍ਰੋਜੈਕਟ ID ਦਾ ਗਿਆਨ ਵਾਲਾ ਕੋਈ ਵੀ ਉਪਭੋਗਤਾ [S2] ਸਾਰੀ ਡਾਟਾਬੇਸ ਸਮੱਗਰੀ ਨੂੰ ਪੜ੍ਹ, ਸੋਧ ਜਾਂ ਮਿਟਾ ਸਕਦਾ ਹੈ। ਇਹ ਸਾਰੇ ਕਲਾਇੰਟ-ਸਾਈਡ ਸੁਰੱਖਿਆ ਉਪਾਵਾਂ ਨੂੰ ਬਾਈਪਾਸ ਕਰਦਾ ਹੈ ਅਤੇ ਇਸਦੇ ਨਤੀਜੇ ਵਜੋਂ ਸੰਵੇਦਨਸ਼ੀਲ ਉਪਭੋਗਤਾ ਜਾਣਕਾਰੀ ਜਾਂ ਕੁੱਲ ਸੇਵਾ ਵਿਘਨ [S2] ਦਾ ਨੁਕਸਾਨ ਹੋ ਸਕਦਾ ਹੈ।
ਮੂਲ ਕਾਰਨ: ਨਾਕਾਫ਼ੀ ਅਧਿਕਾਰ ਤਰਕ
ਇਹਨਾਂ ਕਮਜ਼ੋਰੀਆਂ ਦਾ ਮੂਲ ਕਾਰਨ ਖਾਸ ਤੌਰ 'ਤੇ ਖਾਸ ਸ਼ਰਤਾਂ ਨੂੰ ਲਾਗੂ ਕਰਨ ਵਿੱਚ ਅਸਫਲਤਾ ਹੈ ਜੋ ਉਪਭੋਗਤਾ ਪਛਾਣ ਜਾਂ ਸਰੋਤ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ [S3] ਦੇ ਅਧਾਰ ਤੇ ਪਹੁੰਚ ਨੂੰ ਪ੍ਰਤਿਬੰਧਿਤ ਕਰਦੀਆਂ ਹਨ। ਡਿਵੈਲਪਰ ਅਕਸਰ ਉਤਪਾਦਨ ਵਾਤਾਵਰਨ ਵਿੱਚ ਡਿਫੌਲਟ ਸੰਰਚਨਾਵਾਂ ਨੂੰ ਕਿਰਿਆਸ਼ੀਲ ਛੱਡ ਦਿੰਦੇ ਹਨ ਜੋ request.auth ਆਬਜੈਕਟ [S3] ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਨਹੀਂ ਕਰਦੇ ਹਨ। request.auth ਦਾ ਮੁਲਾਂਕਣ ਕੀਤੇ ਬਿਨਾਂ, ਸਿਸਟਮ ਇੱਕ ਜਾਇਜ਼ ਪ੍ਰਮਾਣਿਤ ਉਪਭੋਗਤਾ ਅਤੇ ਇੱਕ ਅਗਿਆਤ ਬੇਨਤੀਕਰਤਾ [S3] ਵਿਚਕਾਰ ਫਰਕ ਨਹੀਂ ਕਰ ਸਕਦਾ ਹੈ।
ਤਕਨੀਕੀ ਉਪਚਾਰ
ਇੱਕ Firebase ਵਾਤਾਵਰਣ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕਰਨ ਲਈ ਖੁੱਲੇ ਪਹੁੰਚ ਤੋਂ ਇੱਕ ਪ੍ਰਮੁੱਖ-ਘੱਟ-ਅਧਿਕਾਰ ਵਾਲੇ ਮਾਡਲ ਵੱਲ ਜਾਣ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।
- ਪ੍ਰਮਾਣੀਕਰਨ ਨੂੰ ਲਾਗੂ ਕਰੋ: ਇਹ ਜਾਂਚ ਕਰਕੇ ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਸਾਰੇ ਸੰਵੇਦਨਸ਼ੀਲ ਮਾਰਗਾਂ ਲਈ ਇੱਕ ਵੈਧ ਉਪਭੋਗਤਾ ਸੈਸ਼ਨ ਦੀ ਲੋੜ ਹੈ ਕਿ ਕੀ
request.authਵਸਤੂ [S3] ਨਲ ਨਹੀਂ ਹੈ। - ਪਛਾਣ-ਆਧਾਰਿਤ ਪਹੁੰਚ ਨੂੰ ਲਾਗੂ ਕਰੋ: ਨਿਯਮਾਂ ਨੂੰ ਕੌਂਫਿਗਰ ਕਰੋ ਜੋ ਉਪਭੋਗਤਾ ਦੇ UID (
request.auth.uid) ਦੀ ਤੁਲਨਾ ਦਸਤਾਵੇਜ਼ ਦੇ ਅੰਦਰ ਇੱਕ ਖੇਤਰ ਜਾਂ ਦਸਤਾਵੇਜ਼ ID ਨਾਲ ਕਰਦੇ ਹਨ ਤਾਂ ਜੋ ਇਹ ਯਕੀਨੀ ਬਣਾਇਆ ਜਾ ਸਕੇ ਕਿ ਉਪਭੋਗਤਾ ਸਿਰਫ ਉਹਨਾਂ ਦੇ ਆਪਣੇ ਡੇਟਾ [S3] ਤੱਕ ਪਹੁੰਚ ਕਰ ਸਕਦੇ ਹਨ। - ਦਾਣੇਦਾਰ ਅਨੁਮਤੀ ਸਕੋਪਿੰਗ: ਸੰਗ੍ਰਹਿ ਲਈ ਗਲੋਬਲ ਵਾਈਲਡਕਾਰਡਾਂ ਤੋਂ ਬਚੋ। ਇਸ ਦੀ ਬਜਾਏ, ਸੰਭਾਵੀ ਹਮਲੇ ਦੀ ਸਤਹ [S2] ਨੂੰ ਘੱਟ ਤੋਂ ਘੱਟ ਕਰਨ ਲਈ ਹਰੇਕ ਸੰਗ੍ਰਹਿ ਅਤੇ ਉਪ-ਸੰਗ੍ਰਹਿ ਲਈ ਖਾਸ ਨਿਯਮਾਂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰੋ।
- ਇਮੂਲੇਟਰ ਸੂਟ ਦੁਆਰਾ ਪ੍ਰਮਾਣਿਕਤਾ: ਸਥਾਨਕ ਤੌਰ 'ਤੇ ਸੁਰੱਖਿਆ ਨਿਯਮਾਂ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ Firebase ਈਮੂਲੇਟਰ ਸੂਟ ਦੀ ਵਰਤੋਂ ਕਰੋ। ਇਹ ਲਾਈਵ ਵਾਤਾਵਰਣ [S2] ਨੂੰ ਤੈਨਾਤ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਵੱਖ-ਵੱਖ ਉਪਭੋਗਤਾ ਵਿਅਕਤੀਆਂ ਦੇ ਵਿਰੁੱਧ ਪਹੁੰਚ ਨਿਯੰਤਰਣ ਤਰਕ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।
FixVibe ਇਸਦੇ ਲਈ ਕਿਵੇਂ ਟੈਸਟ ਕਰਦਾ ਹੈ
FixVibe ਵਿੱਚ ਹੁਣ ਇਸਨੂੰ ਸਿਰਫ਼-ਪੜ੍ਹਨ ਲਈ BaaS ਸਕੈਨ ਵਜੋਂ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ ਹੈ। baas.firebase-rules ਸਮਾਨ-ਮੂਲ JavaScript ਬੰਡਲਾਂ ਤੋਂ Firebase ਸੰਰਚਨਾ ਨੂੰ ਕੱਢਦਾ ਹੈ, ਜਿਸ ਵਿੱਚ ਆਧੁਨਿਕ initializeApp(...) ਬੰਡਲ ਆਕਾਰ ਸ਼ਾਮਲ ਹਨ, ਫਿਰ ਰੀਅਲਟਾਈਮ ਡਾਟਾਬੇਸ, ਫਾਇਰਸਟੋਰ, ਅਤੇ ZXVIZVCVK2 ਦੇ ਨਾਲ ਜ਼ੈੱਡਐਕਸਵੀਐਕਸਐਕਸਐਕਸਐਕਸਐਕਸਐਕਸਐਕਸਐਕਸਐਕਸਐਕਸਐਕਸਐਕਸਐਕਸਐਕਸਐਕਸਐਕਸਐਕਸਐਕਸਐਕਸਐਕਸਐਕਸਐਕਸਐਕਸਐਨਐਕਸਐਕਸਸੀਵੀ ਦੀ ਜਾਂਚ ਕਰਦਾ ਹੈ ਅਣ-ਪ੍ਰਮਾਣਿਤ ਰੀਡ-ਓਨਲੀ ਬੇਨਤੀਆਂ। ਫਾਇਰਸਟੋਰ ਲਈ, ਇਹ ਪਹਿਲਾਂ ਰੂਟ ਸੰਗ੍ਰਹਿ ਸੂਚੀਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦਾ ਹੈ; ਜਦੋਂ ਸੂਚੀ ਬਲੌਕ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਤਾਂ ਇਹ ਆਮ ਸੰਵੇਦਨਸ਼ੀਲ ਸੰਗ੍ਰਹਿ ਨਾਮਾਂ ਦੀ ਵੀ ਜਾਂਚ ਕਰਦਾ ਹੈ ਜਿਵੇਂ ਕਿ users, accounts, customers, orders, orders, users, messages, admin, ਅਤੇ settings। ਇਹ ਸਿਰਫ ਸਫਲ ਅਗਿਆਤ ਰੀਡ ਜਾਂ ਸੂਚੀਆਂ ਦੀ ਰਿਪੋਰਟ ਕਰਦਾ ਹੈ ਅਤੇ ਗਾਹਕ ਦਸਤਾਵੇਜ਼ ਸਮੱਗਰੀ ਨੂੰ ਨਹੀਂ ਲਿਖਦਾ, ਮਿਟਾਉਂਦਾ ਜਾਂ ਸਟੋਰ ਨਹੀਂ ਕਰਦਾ।
