Laravel میں SaaS ڈیٹا لیکس کو روکیں
آپ ایک B2B SaaS چلاتے ہیں۔ آپ کے لیے کلائنٹ کا ڈیٹا الگ رکھنا لازمی ہے۔
بہت سے ڈویلپرز دستی طور پر tenant filters شامل کرتے ہیں۔ وہ ہر query میں ایک where clause شامل کرتے ہیں۔
اس سے انسانی غلطی کا امکان رہتا ہے۔ اگر ایک ڈویلپر رپورٹ میں ایک لائن بھول جائے، تو کلائنٹ A، کلائنٹ B کا ڈیٹا دیکھ سکتا ہے۔ یہ ایک بڑی تباہی ہے۔
اسے Global Query Scopes کے ذریعے خودکار (automate) بنائیں۔
یہ رہا طریقہ کار:
ایک scope class بنائیں: یہ کلاس موجودہ tenant ID تلاش کرتی ہے اور ڈیٹا بیس کی ہر تلاش میں فلٹر شامل کر دیتی ہے۔
ایک trait بنائیں: یہ trait scope کو رجسٹر کرتا ہے۔ یہ نیا ریکارڈ بناتے وقت tenant ID بھی سیٹ کرتا ہے۔
اپنے models میں trait کا استعمال کریں: اس سے آپ کے controllers صاف ستھرے رہیں گے۔
اب آپ کے پاس ایک zero-trust layer ہے۔ یہاں تک کہ Invoice::all() جیسی سادہ کال بھی محفوظ رہتی ہے۔
حفاظت اب آپ کے ڈیزائن کا حصہ ہے۔ یہ اب کوئی دستی چیک لسٹ نہیں رہی۔
ماخذ: https://dev.to/iprajapatiparesh/prevent-saas-data-leaks-automated-eloquent-scopes-in-laravel-f6o