Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Hogyan kezeli a Spatie csomag a felhasználói bemenet validálását és fertőtlenítését


Hogyan kezeli a Spatie csomag a felhasználói bemenet validálását és fertőtlenítését


A Spatie csomag elsősorban a Laravel érvényesítési szabályok és a Laravel érvényesítési rendszerével való integráció révén kezeli a felhasználói bemeneti validációt, amely strukturált és kiterjeszthető megközelítést biztosít az adatok érvényesítéséhez a feldolgozás vagy mentés előtt.

Érvényesítési menedzsment spatie csomagokban

Egyéni érvényesítési szabályok

A Spatie hasznos érvényesítési szabályok gyűjteményét kínálja, amelyek kiterjesztik a Laravel natív validációs képességeit. Ezek a szabályok használhatók a Laravel forma kéréseiben vagy közvetlenül a vezérlő validációs logikájában. Példák a következők:

- Engedélyezett szabály: Érvényesíti, ha a bejelentkezett felhasználó felhatalmazott-e egy adott művelet végrehajtására egy modellpéldányon, ellenőrzéssel, például a felhasználói azonosítók illesztésével [1].
- Pénznem szabály: Érvényesíti, ha egy adott input érvényes valutakód, amely támogatja az ISO 3166 szabványokat [1].
- Enum szabály: igazolja, hogy a bemeneti érték egy előre meghatározott Enum értékek halmazához tartozik, amely erősen beírt adatokhoz hasznos [1].
- ModelSexist szabály: Ellenőrizi, hogy a tömb összes értéke attribútumként létezik -e egy meghatározott modellben, biztosítva a referenciális integritást [1].
- Delimitált szabály: A meghatározott értékeket (például vesszővel elválasztott e-maileket) tartalmazó karakterláncokat validálja, beleértve a minimális/maximális tételek beállításának lehetőségeit, a másolatokat és az elválasztók testreszabását [1].

Ezek a szabályok zökkenőmentesen integrálódnak a Laravel érvényesítési rendszerével, lehetővé téve a fejlesztők számára, hogy meghatározzák őket a „szabályok ()” formájában, az űrlapkérések vagy az inline validációs tömbökben.

Érvényesítés a Spatie Laravel adatcsomagban

A Spatie Laravel adatcsomag javítja az érvényesítést az adatok validálásával, mielőtt az adatobjektumokat létrehozná. Az érvényesítés automatikusan történik, amikor:

- Adatobjektum injektálása egy kérésből.
- A „From” módszer hívása egy adatobjektumon kérési adatokkal.

Az érvényesítést manuálisan indíthatja el olyan módszerekkel is, mint a „validate ()” vagy a „validateAndCreate ()”. A csomag támogatja az érvényesítési stratégiák konfigurálását, például a validálás mindig validálását vagy letiltását, finom szemcsés ellenőrzést biztosítva az érvényesítés során [4].

Kétlépéses érvényesítés

A Spatie kétlépéses validációs megközelítést vizsgál, ahol:

- Az első lépés az alapszabályokat alkalmazza annak biztosítása érdekében, hogy az adatszerkezet hangos -e és megakadályozza a PHP hibákat.
- A második lépés összetettebb érvényesítési szabályokat alkalmaz.

Ez a megközelítés javíthatja a robusztusságot azáltal, hogy korai hibákat fog elkapni, és világosabb validálási visszajelzést ad [7].

fertőtlenítés

Míg a Spatie csomagjai elsősorban a validálásra összpontosítanak, maga a Laravel a fertőtlenítést implicit módon kezeli a validálás és az adatok kötése révén. Például a Laravel űrlapkérései automatikusan fertőtlenítik a bemeneteket az adatok validálásával és szűrésével, mielőtt azt az alkalmazásban használnák. A Spatie érvényesítési szabályai kiegészítik ezt azáltal, hogy az adatok megfelelnek az egyes üzleti szabályoknak vagy formátumoknak.

A fejlesztők kibővíthetik a fertőtlenítést az egyedi érvényesítési attribútumok létrehozásával vagy a bemenetek kézi fertőtlenítésével az érvényesítés előtt vagy után [3].

Összegzés

.
- A Spatie Laravel adatcsomagja az objektum létrehozása előtt validálja az adatokat, a kézi vagy automatikus érvényesítési és konfigurálható validációs stratégiák lehetőségeivel [4].
- Kétlépéses validációs folyamatot dolgoznak ki a validációs robusztusság fokozása érdekében [7].
- A fertőtlenítést általában Laravel érvényesítési és bemeneti kezelési mechanizmusai kezelik, a SPATIE eszközökkel az érvényesítés helyességére és a kiterjeszthetőségre összpontosítva [3].

Ez a megközelítés biztosítja, hogy a felhasználói bemenetet szigorúan validálják az alkalmazás-specifikus szabályok szerint a feldolgozás előtt, csökkentve a hibákat és javítva a biztonságot.

Idézetek:
[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/laravel-data/v4/validation/using-validation-attributes
[4] https://spatie.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-package-fails-in-durmes-in-in-in-control
[9] https://spatie.be/docs/laravel-model-states/v2/request-validation/01-state-validation-rule