Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Як пакет Spatie керує перевіркою та санітарією користувачів


Як пакет Spatie керує перевіркою та санітарією користувачів


Пакет Spatie керує перевіркою введення користувача насамперед за допомогою набору спеціальних правил перевірки Laravel та інтеграції з системою перевірки Laravel, забезпечуючи структурований та розширений підхід до перевірки даних до їх обробки або збереження.

Управління валідації в пакетах Spatie

Спеціальні правила перевірки

Spatie пропонує колекцію корисних правил перевірки, які розширюють місцеві можливості перевірки Ларавеля. Ці правила можуть бути використані в запитах форми Laravel або безпосередньо в логіці перевірки контролера. Приклади включають:

- Уповноважене правило: підтверджує, якщо користувач в системі входить уповноважений виконувати конкретні дії в екземплярі моделі, перевіряючи політики, такі як відповідність ідентифікаторів користувачів [1].
- Правило валюти: перевіряє, якщо заданий вхід є дійсним кодом валюти, підтримуючи стандарти ISO 3166 [1].
- Правило ENUM: підтверджує, що вхідне значення належить до заздалегідь визначеного набору значень ENUM, корисно для сильно введених даних [1].
- Правило ModelSexist: перевіряє, чи існують усі значення в масиві як атрибути у визначеній моделі, забезпечуючи референтну цілісність [1].
- Розмежоване правило: перевіряє рядки, що містять розмежовані значення (наприклад, електронні листи, розділені комами), включаючи параметри встановлення мінімальних/максимальних елементів, дозволу дублікатів та налаштування сепараторів [1].

Ці правила безперешкодно інтегруються з системою перевірки Ларавеля, що дозволяє розробникам визначити їх у `` методах запитів форми або вбудованих масивів перевірки.

Валідація в пакеті даних Spatie Laravel

Пакет даних Spatie Laravel посилює перевірку шляхом перевірки даних перед створенням об'єктів даних. Перевірка відбувається автоматично, коли:

- Введення об'єкта даних із запиту.
- Виклик методу `` `на об'єкті даних з даними запиту.

Ви також можете запустити перевірку вручну за допомогою таких методів, як `validate ()` або `validateAndeCreate ()`. Пакет підтримує налаштування стратегій перевірки, таких як завжди перевірка або відключення перевірки повністю, забезпечуючи дрібнозернистий контроль, коли відбувається перевірка [4].

Двозадова перевірка

Spatie вивчає двоступеневий підхід до перевірки, де:

- Перший крок застосовує основні правила для того, щоб структура даних є надійною та запобігає помилкам PHP.
- Другий крок застосовує більш складні правила перевірки.

Такий підхід може покращити надійність, забиваючи помилки рано та надаючи чіткіший відгук перевірки [7].

саніталізація

У той час як пакети Spatie зосереджуються головним чином на валідації, сам Ларавель неявно обробляє дезінфікуючу через валідацію та зв'язування даних. Наприклад, запити форми Laravel автоматично саніпують входи шляхом перевірки та фільтрування даних до того, як вони будуть використані в додатку. Правила перевірки Spatie доповнюють це, забезпечуючи, щоб дані відповідали конкретним діловим правилам або форматам.

Розробники можуть розширити санітарію, створюючи власні атрибути перевірки або шляхом вручного санітарного введення до або після перевірки за потребою [3].

Короткий зміст

- Spatie забезпечує багатий набір правил перевірки Laravel для загальних та складних сценаріїв перевірки, таких як перевірка авторизації, перевірка переліку, перевірки існування та обмежена перевірка введення [1].
- Пакет даних Laravel від Spatie підтверджує дані перед створенням об'єктів з опціями для ручної або автоматичної валідації та налаштування стратегій перевірки [4].
- Для підвищення стійкості до перевірки [7] розробляється двоступеневий процес перевірки [7].
- Саніталізацію, як правило, обробляється механізмами валідації та обробки введення Ларавеля з інструментами Spatie, орієнтованими на правильність та розширюваність валідації [3].

Цей підхід гарантує, що введення користувача суворо підтверджено відповідно до правил, що стосуються додатків, перед обробкою, зменшення помилок та покращення безпеки.

Цитати:
[1] https://github.com/spatie/laravel-validation-rules
[2] https://zapkit.dev/blog/ultimate-guide-to-validate-and-sanitize-htp-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
4
[9] https://spatie.be/docs/laravel-model-states/v2/request-validation/01-state-validation-rule