„Spatie“ paketas valdo vartotojo įvesties patvirtinimą pirmiausia pagal pasirinktinių „Laravel“ patvirtinimo taisyklių rinkinį ir integraciją į „Laravel“ patvirtinimo sistemą, pateikdamas struktūrizuotą ir išplėstinį požiūrį į duomenų patvirtinimą prieš apdorojant ar išsaugojant.
patvirtinimo valdymas „Spatie“ pakuotėse
Pasirinktinės patvirtinimo taisyklės
„Spatie“ siūlo naudingų patvirtinimo taisyklių kolekciją, praplečiančią „Laravel“ gimtosios patvirtinimo galimybes. Šios taisyklės gali būti naudojamos „Laravel“ formos užklausose arba tiesiogiai valdiklio patvirtinimo logikoje. Pavyzdžiai:- Leidžiama taisyklė: patvirtina, ar prisijungęs vartotojui leista atlikti konkretų veiksmą modelio egzemplioriuje, tikrinant politiką, pavyzdžiui, suderinant vartotojo ID [1].
- Valiutos taisyklė: patvirtina, jei nurodytas įvestis yra galiojantis valiutos kodas, palaikantis ISO 3166 standartus [1].
- ENUM taisyklė: patvirtina, kad įvesties vertė priklauso iš anksto nustatytam ENUM reikšmių rinkiniui, naudingam stipriai įvesti duomenims [1].
- Modelseksistinė taisyklė: patikrinkite, ar visos masyvo vertės egzistuoja kaip atributai nurodytame modelyje, užtikrinant referencinį vientisumą [1].
- Apibendrinta taisyklė: patvirtina eilutes, kuriose yra atskirtos vertės (pvz., Kableliuose atskirti el. Laiškai), įskaitant parinktis, kaip nustatyti minimalius/maksimalius elementus, leisti dublikatus ir pritaikyti separatorius [1].
Šios taisyklės sklandžiai integruoja su „Laravel“ patvirtinimo sistema, leidžiančia kūrėjams apibrėžti jas „taisyklėse ()„ formos užklausų ar intarpų patvirtinimo masyvuose.
patvirtinimas „Spatie Laravel“ duomenų pakete
„Spatie Laravel“ duomenų paketas pagerina patvirtinimą patvirtinant duomenis prieš kuriant duomenų objektus. Patvirtinimas įvyksta automatiškai, kai:- Duomenų objekto švirkštimas iš užklausos.
- Paskambinimas „iš„ iš “metodo duomenų objekte su užklausos duomenimis.
Taip pat galite rankiniu būdu suaktyvinti patvirtinimą tokiais metodais kaip „patvirtinti ()` arba `validateAndcreate ()`. Paketas palaiko patvirtinimo strategijų konfigūravimą, pavyzdžiui, visiškai patvirtinti ar išjungti patvirtinimą ar išjungiamą patvirtinimą, o tai užtikrinant, kai įvyksta patvirtinimas [4].
Dviejų žingsnių patvirtinimas
„Spatie“ tiria dviejų žingsnių patvirtinimo metodą, kur:- Pirmasis žingsnis taiko pagrindines taisykles, kad duomenų struktūra būtų patikima ir užkirstų kelią PHP klaidoms.
- Antrasis žingsnis taiko sudėtingesnes patvirtinimo taisykles.
Šis požiūris gali pagerinti tvirtumą, kai anksti sugaunama klaidų ir pateikdamas aiškesnį patvirtinimo atsiliepimą [7].
sanitarija
Nors „Spatie“ paketai daugiausia dėmesio skiria patvirtinimui, pats „Laravel“ netiesiogiai tvarko dezinfekavimą ir surišant duomenis. Pavyzdžiui, „Laravel“ forma užklausa automatiškai dezinfekuoti įėjimus, patvirtinant ir filtruodama duomenis prieš naudojant programoje. „Spatie“ patvirtinimo taisyklės papildo tai užtikrinant, kad duomenys atitinka konkrečias verslo taisykles ar formatus.Kūrėjai gali išplėsti dezinfekavimą, sukurdami pasirinktinius patvirtinimo atributus arba rankiniu būdu dezinfekuodami įvestis prieš ar po jo, jei reikia [3].
Santrauka
- „Spatie“ pateikia turtingą „Laravel“ patvirtinimo taisyklių rinkinį, skirtą bendrų ir sudėtingų patvirtinimo scenarijams, tokiems kaip autorizacijos patikrinimai, ENUM patvirtinimas, egzistencijos patikrinimai ir atskirtas įvesties patvirtinimas [1].- „Laravel“ duomenų paketas iš „Spatie“ patvirtina duomenis prieš kuriant objektą, o rankinio ar automatinio patvirtinimo ir konfigūruojamų patvirtinimo strategijų parinktys [4].
- Siekiant pagerinti patvirtinimo tvirtumą, kuriamas dviejų pakopų patvirtinimo procesas [7].
- Saniitizaciją paprastai tvarko „Laravel“ patvirtinimo ir įvesties tvarkymo mechanizmai, naudojant „Spatie“ įrankius, orientuotus į patvirtinimo teisingumą ir išplėtimą [3].
Šis metodas užtikrina, kad vartotojo įvestis prieš apdorojant, mažinant klaidas ir pagerina saugumą, vartotojo įvestis yra griežtai patvirtintas atsižvelgiant į konkrečias programas.
Citatos:
[1] https://github.com/spatie/laravel-validation-rules
[2] https://zapkit.dev/blog/ultimate-guide-to-valiate-and-sanitize-http-requests-in-laravel
[3] https://patie.be/docs/laravel-data/v4/validation/using-validation-attributes
[4] https://patie.be/docs/laravel-data/v4/validation/introduction
[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-spatie-package-fails-in-routes ir-in-control
[9] https://spatie.be/docs/laravel-model-states/v2/request-validation/01-sate-validation-ule