Balík Spatie spravuje overenie vstupu používateľov predovšetkým prostredníctvom súboru vlastných pravidiel validácie Laravel a integrácie s validačným systémom spoločnosti Laravel a poskytuje štruktúrovaný a rozšíriteľný prístup k validácii údajov pred ich spracovaním alebo uložením.
Validácia Management v balíkoch Spatie
Vlastné pravidlá validácie
Spatie ponúka zbierku užitočných pravidiel validácie, ktoré rozširujú Laravelove natívne validačné schopnosti. Tieto pravidlá môžu byť použité v požiadavkách Laravel Form alebo priamo v logike validácie ovládača. Príklady zahŕňajú:- Autorizované pravidlo: Overuje, či je prihlásený užívateľ oprávnený vykonávať konkrétnu akciu v inštancii modelu kontrolou politík, ako napríklad zodpovedajúce ID používateľa [1].
- Pravidlo meny: Overuje, či je daný vstup platný kód meny, ktorý podporuje normy ISO 3166 [1].
- Pravidlo enum: potvrdzuje, že vstupná hodnota patrí do preddefinovanej množiny hodnôt enum, užitočných pre silne zadané údaje [1].
- ModelSexistické pravidlo: Kontroluje, či všetky hodnoty v poli existujú ako atribúty v určenom modeli, čím sa zabezpečuje referenčná integrita [1].
- Vymedzené pravidlo: Oveľuje reťazce obsahujúce vymedzené hodnoty (napr. E-maily oddelené čiarkami), vrátane možností na nastavenie minimálnych/maximálnych položiek, povoľovanie duplikátov a prispôsobenie oddeľovačov [1].
Tieto pravidlá sa bez problémov integrujú do systému validácie Laravel, čo vývojárom umožňuje definovať ich v `pravidlá ()„ metóda žiadostí o formuláre alebo inline validačné polia.
Validácia v balíku dátových údajov Spatie Laravel
Dátový balík Spatie Laravel vylepšuje validáciu overením údajov pred vytvorením dátových objektov. Validácia sa vyskytuje automaticky, keď:- Vstrekovanie dátového objektu z požiadavky.
- Volanie metódy „From“ na dátovom objekte s údajmi o požiadavkách.
Môžete tiež manuálne spustiť validáciu metódami ako „validate ()` alebo `validateAndCreate ()`. Balík podporuje konfiguráciu validačných stratégií, ako napríklad vždy overenie alebo úplné zakázanie validácie, poskytujúca jemnozrnnú kontrolu nad validáciou [4].
Dvojstupňové validácia
Spatie skúma prístup k overeniu dvoch krokov, kde:- Prvý krok uplatňuje základné pravidlá na zabezpečenie toho, aby bola štruktúra údajov zdravá a zabránila chybám PHP.
- Druhý krok uplatňuje zložitejšie pravidlá validácie.
Tento prístup môže zlepšiť robustnosť tým, že zachytí chyby včas a poskytne jasnejšiu spätnú väzbu o validácii [7].
dezantizácia
Zatiaľ čo balíčky Spatie sa zameriavajú hlavne na validáciu, samotný Laravel implicitne spracováva validáciu a väzbu údajov. Napríklad požiadavky na formuláre spoločnosti Laravel automaticky dezinfikujú vstupy overením a filtrovaním údajov skôr, ako sa použijú v aplikácii. Pravidlá validácie spoločnosti Spatie to dopĺňajú tým, že zaisťujú, že údaje sú v súlade s konkrétnymi obchodnými pravidlami alebo formátmi.Vývojári môžu predĺžiť dezantizáciu vytvorením vlastných atribútov validácie alebo manuálnym dezinfekciou vstupov pred alebo po overení podľa potreby [3].
Zhrnutie
- Spatie poskytuje bohatý súbor pravidiel validácie Laravel pre spoločné a zložité scenáre validácie, ako sú kontroly autorizácie, validácia výmeny, kontroly existencie a vymedzené overenie vstupu [1].- Dátový balík Laravel od spoločnosti Spatie overuje údaje pred vytvorením objektu, s možnosťami manuálnej alebo automatickej validácie a konfigurovateľných stratégií validácie [4].
- Vyvíja sa proces validácie dvoch krokov na zvýšenie robustnosti validácie [7].
- Dezantizácia sa vo všeobecnosti zaoberá mechanizmami validácie Laravela a manipulácie s vstupmi, pričom nástroje Spatie sa zameriavajú na správnosť a rozšíriteľnosť validácie [3].
Tento prístup zaisťuje, že vstup používateľa je prísne overený podľa pravidiel špecifických pre aplikáciu pred spracovaním, znížením chýb a zlepšeniu bezpečnosti.
Citácie:
[1] https://github.com/spatie/laravel-Validation-rules
[2] https://zapkit.dev/blog/ultimate-guide-to-validate-and-sanitize-http-requests-in-laravel
[3] https://spatie.be/docs/laraveldata/v4/Validation/using-Validation-attributes
[4] https://spatie.be/docs/laravel-data/v4/validation/introdukcia
[5] https://escape.tech/blog/laravel-sql-incance-guide/
[6] https://www.youtube.com/watch?v=SW1DDJ5PCAM
[7] https://github.com/spatie/laravel-data/discussions/470
[8] https://stackoverflow.com/questions/72186973/checking-for-user-permissions-with-Spatie-package-fails--fails-in-in-routes-and-in-in-control
[9] https://spatie.be/docs/laravel-model-states/v2/request-Validation/01-state-Validation-rule