Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kā Spatie pakotne pārvalda lietotāja ievades validāciju un sanitizāciju


Kā Spatie pakotne pārvalda lietotāja ievades validāciju un sanitizāciju


Spatie pakotne pārvalda lietotāja ievades validāciju galvenokārt, izmantojot pielāgotu Laravel validācijas noteikumu kopu un integrāciju ar Laravel validācijas sistēmu, nodrošinot strukturētu un paplašināmu pieeju datu validēšanai pirms tā apstrādes vai saglabāšanas.

validācijas pārvaldība Spatie paketēs

Pielāgoti validācijas noteikumi

Spatie piedāvā noderīgu validācijas noteikumu kolekciju, kas paplašina Laravel vietējās validācijas iespējas. Šos noteikumus var izmantot laravel formas pieprasījumos vai tieši kontroliera validācijas loģikā. Piemēri ir:

- Autorizēts noteikums: apstiprina, ja reģistrētais lietotājs ir pilnvarots veikt konkrētu darbību modeļa instancē, pārbaudot politikas, piemēram, saskaņojot lietotāja ID [1].
- Valūtas noteikums: apstiprina, ja dotā ievade ir derīgs valūtas kods, atbalsta ISO 3166 standartus [1].
- Enum noteikums: apstiprina, ka ievades vērtība pieder iepriekš noteiktajam enum vērtību kopai, kas noderīgi drukātiem datiem ir noderīga [1].
- ModelSexist noteikums: pārbauda, ​​vai visas masīva vērtības pastāv kā atribūti noteiktā modelī, nodrošinot atsauces integritāti [1].
- Noteikts noteikums: apstiprina virknes, kas satur noteiktas vērtības (piemēram, ar komatu atdalītiem e-pastiem), ieskaitot iespējas iestatīt minimālo/maksimālo vienību, atļaut dublikātus un pielāgot atdalītājus [1].

Šie noteikumi nemanāmi integrējas ar Laravel validācijas sistēmu, ļaujot izstrādātājiem tos definēt noteikumos () `veidlapas pieprasījumu metodē vai inline validācijas blokos.

validācija Spatie Laravel datu paketē

Spatie Laravel datu pakete uzlabo validāciju, pirms datu objektu izveidošanas validējot datus. Validācija notiek automātiski, kad:

- datu objekta ievadīšana no pieprasījuma.
- Zvanīšana uz “metodi no” datu objektā ar pieprasījuma datiem.

Varat arī manuāli izraisīt validāciju, izmantojot tādas metodes kā `validate ()` vai `validateandcreate ()`. Komplekts atbalsta validācijas stratēģiju konfigurēšanu, piemēram, vienmēr validācijas validēšanu vai invaliditāti, nodrošinot smalkgraudainu kontroli, ja notiek validācija [4].

divpakāpju validācija

Spatie pēta divpakāpju validācijas pieeju, kur:

- Pirmais solis piemēro pamatnoteikumus, lai nodrošinātu, ka datu struktūra ir pareiza un novērš PHP kļūdas.
- Otrais solis piemēro sarežģītākus validācijas noteikumus.

Šī pieeja var uzlabot noturību, savlaicīgi noķert kļūdas un sniedzot skaidrāku apstiprināšanas atgriezenisko saiti [7].

sanitizācija

Kamēr Spatie paketes galvenokārt koncentrējas uz validāciju, pats Laravels netieši rīkojas ar sanitizāciju, izmantojot validāciju un datu saistīšanos. Piemēram, Laravel veidlapas pieprasījumi automātiski sanitizē ieejas, apstiprinot un filtrējot datus, pirms tie tiek izmantoti lietojumprogrammā. Spatie validācijas noteikumi to papildina, nodrošinot, ka dati atbilst īpašiem biznesa noteikumiem vai formātiem.

Izstrādātāji var paplašināt sanitārizāciju, izveidojot pielāgotus validācijas atribūtus vai manuāli sanitizējot ieejas pirms vai pēc vajadzības pēc validācijas [3].

Kopsavilkums

- Spatie nodrošina bagātīgu Laravel validācijas noteikumu kopumu kopīgiem un sarežģītiem validācijas scenārijiem, piemēram, autorizācijas pārbaudēm, enum validāciju, eksistences pārbaudēm un norobežotu ievades validāciju [1].
- Laravel datu pakete no Spatie apstiprina datus pirms objekta izveidošanas, izmantojot manuālas vai automātiskas validācijas opcijas un konfigurējamas validācijas stratēģijas [4].
- Tiek izstrādāts divpakāpju validācijas process, lai uzlabotu validācijas noturību [7].
- Sanitizāciju parasti apstrādā ar Laravel validācijas un ieejas apstrādes mehānismiem, ar Spatie rīkiem, kas koncentrējas uz validācijas pareizību un paplašināmību [3].

Šī pieeja nodrošina, ka lietotāja ievade ir stingri apstiprināta saskaņā ar lietojumprogrammai raksturīgos noteikumus pirms apstrādes, kļūdu samazināšanas un drošības uzlabošanas.

Atsauces:
[1] https://github.com/spatie/laravel-validation-rules
[2] https://zapkit.dev/blog/ultimate-guide-to-validate-and-sanitize-http-requests-laravel
[3] https://spatie.be/docs/laravel-data/v4/validation/using-validation-attributes
[4] https://spatie.be/docs/laravel-data/v4/validation/introdiation
[5] https://escape.tech/blog/laravel-sql-injection-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-patie-package-fails-in-jonts--in-Control
[9] https://spatie.be/docs/laravel-model-states/v2/request-validation/01-state-validation-rull