𝗟𝗮𝗿𝗮𝘃𝗲𝗹‌లో 𝗦𝗮𝗮𝗦 𝗗𝗮𝘁𝗮 𝗟𝗲𝗮𝗸𝘀‌లను నివారించండి

మీరు ఒక B2B SaaS నడుపుతున్నారు. మీరు క్లయింట్ డేటాను వేరువేరుగా ఉంచాలి.

చాలా మంది డెవలపర్లు tenant filtersను మాన్యువల్‌గా జోడిస్తారు. వారు ప్రతి క్వెరీకి ఒక where clauseను జోడిస్తారు.

ఇది మానవ తప్పిదాలకు దారితీస్తుంది. ఒక రిపోర్ట్‌లో డెవలపర్ ఒక లైన్ మర్చిపోతే, క్లయింట్ A, క్లయింట్ B యొక్క డేటాను చూసే అవకాశం ఉంది. ఇది ఒక పెద్ద విపత్తు.

దీనిని Global Query Scopes ద్వారా ఆటోమేట్ చేయండి.

ఆ ప్రక్రియ ఇక్కడ ఉంది:

  • ఒక scope classను నిర్మించండి. ఈ క్లాస్ ప్రస్తుత tenant IDని కనుగొంటుంది. ఇది ప్రతి డేటాబేస్ లుకప్‌కు ఫిల్టర్‌ను జోడిస్తుంది.

  • ఒక traitని సృష్టించండి. ఈ trait scopeను రిజిస్టర్ చేస్తుంది. మీరు కొత్త రికార్డును సృష్టించినప్పుడు ఇది tenant IDని కూడా సెట్ చేస్తుంది.

  • మీ modelsలో ఆ traitని ఉపయోగించండి. దీనివల్ల మీ controllers క్లీన్‌గా ఉంటాయి.

ఇప్పుడు మీకు ఒక zero-trust లేయర్ ఉంటుంది. Invoice::all() వంటి సాధారణ కాల్ కూడా సురక్షితంగా ఉంటుంది.

భద్రత ఇప్పుడు మీ డిజైన్‌లో ఒక భాగం. ఇది ఇకపై మాన్యువల్ చెక్‌లిస్ట్ కాదు.

మూలం: https://dev.to/iprajapatiparesh/prevent-saas-data-leaks-automated-eloquent-scopes-in-laravel-f6o