Laravel-এ SaaS ডেটা লিক হওয়া বন্ধ করুন

আপনি একটি B2B SaaS পরিচালনা করেন। আপনাকে অবশ্যই ক্লায়েন্টের ডেটা আলাদা রাখতে হবে।

অনেক ডেভেলপার হাতে কলমে tenant filter যোগ করেন। তারা প্রতিটি query-তে একটি where clause যোগ করেন।

এর ফলে মানুষের ভুল (human error) হওয়ার সম্ভাবনা থাকে। একজন ডেভেলপার একটি রিপোর্টে একটি লাইন লিখতে ভুলে যেতে পারেন। ফলে এখন Client A দেখতে পাচ্ছে Client B-এর ডেটা। এটি একটি বিপর্যয়।

Global Query Scopes ব্যবহার করে এটি অটোমেট করুন।

প্রক্রিয়াটি হলো:

  • একটি scope class তৈরি করুন। এই class-টি বর্তমান tenant ID খুঁজে বের করে। এটি প্রতিটি database lookup-এ filter যোগ করে দেয়।

  • একটি trait তৈরি করুন। এই trait-টি scope-টি রেজিস্টার করে। এটি নতুন কোনো record তৈরি করার সময় tenant ID সেট করে দেয়।

  • আপনার models-এ trait-টি ব্যবহার করুন। এতে আপনার controllers পরিষ্কার থাকবে।

এখন আপনার কাছে একটি zero-trust layer রয়েছে। এমনকি Invoice::all() এর মতো একটি সাধারণ কলও সুরক্ষিত থাকবে।

নিরাপত্তা এখন আপনার ডিজাইনের একটি অংশ। এটি আর কোনো ম্যানুয়াল চেকলিস্ট নয়।

উৎস: https://dev.to/iprajapatiparesh/prevent-saas-data-leaks-automated-eloquent-scopes-in-laravel-f6o