أوقف تسريبات بيانات SaaS في Laravel

أنت تدير تطبيق SaaS بنظام B2B. يجب عليك الحفاظ على فصل بيانات العملاء.

يقوم العديد من المطورين بإضافة فلاتر المستأجرين (tenant filters) يدويًا، حيث يضيفون شرط where إلى كل استعلام.

يؤدي هذا إلى وقوع أخطاء بشرية. قد ينسى المطور سطرًا واحدًا في تقرير ما، ليجد العميل (أ) نفسه يرى بيانات العميل (ب). هذه كارثة.

قم بأتمتة هذه العملية باستخدام Global Query Scopes.

إليك العملية:

  • قم ببناء scope class. تقوم هذه الفئة بتحديد معرف المستأجر الحالي (tenant ID)، وتضيف الفلتر إلى كل عملية بحث في قاعدة البيانات.

  • قم بإنشاء trait. يقوم هذا الـ trait بتسجيل الـ scope، كما يقوم بتعيين الـ tenant ID عند إنشاء سجل جديد.

  • استخدم الـ trait في الـ models الخاصة بك. ستبقى الـ controllers نظيفة.

أصبح لديك الآن طبقة zero-trust. حتى الاستدعاءات البسيطة مثل Invoice::all() ستظل آمنة.

الأمان الآن جزء من تصميمك، ولم يعد مجرد قائمة مهام يدوية.

المصدر: https://dev.to/iprajapatiparesh/prevent-saas-data-leaks-automated-eloquent-scopes-in-laravel-f6o