Laravel ਵਿੱਚ SaaS ਡਾਟਾ ਲੀਕ ਹੋਣ ਤੋਂ ਰੋਕੋ

ਤੁਸੀਂ ਇੱਕ B2B SaaS ਚਲਾਉਂਦੇ ਹੋ। ਤੁਹਾਨੂੰ ਕਲਾਇੰਟ ਦੇ ਡਾਟਾ ਨੂੰ ਵੱਖਰਾ ਰੱਖਣਾ ਚਾਹੀਦਾ ਹੈ।

ਬਹੁਤ ਸਾਰੇ ਡਿਵੈਲਪਰ tenant filters ਨੂੰ ਹੱਥ ਨਾਲ ਜੋੜਦੇ ਹਨ। ਉਹ ਹਰ query ਵਿੱਚ ਇੱਕ where clause ਜੋੜਦੇ ਹਨ।

ਇਸ ਨਾਲ ਮਨੁੱਖੀ ਗਲਤੀ (human error) ਹੋ ਸਕਦੀ ਹੈ। ਇੱਕ ਡਿਵੈਲਪਰ ਰਿਪੋਰਟ ਵਿੱਚ ਇੱਕ ਲਾਈਨ ਭੁੱਲ ਜਾਂਦਾ ਹੈ। ਹੁਣ Client A, Client B ਦਾ ਡਾਟਾ ਦੇਖ ਸਕਦਾ ਹੈ। ਇਹ ਇੱਕ ਬਹੁਤ ਵੱਡੀ ਮੁਸੀਬਤ ਹੈ।

ਇਸ ਨੂੰ Global Query Scopes ਨਾਲ ਆਟੋਮੇਟ ਕਰੋ।

ਇੱਥੇ ਪ੍ਰਕਿਰਿਆ ਦਿੱਤੀ ਗਈ ਹੈ:

  • ਇੱਕ scope class ਬਣਾਓ। ਇਹ class ਮੌਜੂਦਾ tenant ID ਲੱਭਦੀ ਹੈ। ਇਹ ਹਰ database lookup ਵਿੱਚ filter ਜੋੜਦੀ ਹੈ।

  • ਇੱਕ trait ਬਣਾਓ। ਇਹ trait scope ਨੂੰ ਰਜਿਸਟਰ ਕਰਦੀ ਹੈ। ਇਹ ਨਵਾਂ ਰਿਕਾਰਡ ਬਣਾਉਂਦੇ ਸਮੇਂ tenant ID ਵੀ ਸੈੱਟ ਕਰਦੀ ਹੈ।

  • ਆਪਣੇ models ਵਿੱਚ trait ਦੀ ਵਰਤੋਂ ਕਰੋ। ਤੁਹਾਡੇ controllers ਸਾਫ਼-ਸੁਥਰੇ ਰਹਿਣਗੇ।

ਹੁਣ ਤੁਹਾਡੇ ਕੋਲ ਇੱਕ zero-trust layer ਹੈ। ਇੱਥੋਂ ਤੱਕ ਕਿ Invoice::all() ਵਰਗੀ ਇੱਕ ਸਧਾਰਨ call ਵੀ ਸੁਰੱਖਿਅਤ ਰਹਿੰਦੀ ਹੈ।

ਸੁਰੱਖਿਆ ਹੁਣ ਤੁਹਾਡੇ ਡਿਜ਼ਾਈਨ ਦਾ ਹਿੱਸਾ ਹੈ। ਇਹ ਹੁਣ ਕੋਈ ਮੈਨੂਅਲ ਚੈੱਕਲਿਸਟ ਨਹੀਂ ਰਹੀ।

ਸਰੋਤ: https://dev.to/iprajapatiparesh/prevent-saas-data-leaks-automated-eloquent-scopes-in-laravel-f6o