Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Как пакет Spatie управляет проверкой пользователя и дезинфекцией


Как пакет Spatie управляет проверкой пользователя и дезинфекцией


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

Управление проверкой в ​​пакетах Spatie

Пользовательские правила проверки

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

- Авторизованное правило: проверяет, если пользователь зарегистрированным разрешено выполнять конкретное действие на экземпляре модели путем проверки политик, таких как сопоставление идентификаторов пользователей [1].
- Правило валюты: подтверждает, что данное вход является действительным кодом валюты, поддерживающий стандарты ISO 3166 [1].
- Правило перечисления: подтверждает, что входное значение принадлежит к предопределенному набору значений перечисления, полезно для сильно напечатанных данных [1].
- Модельсексистское правило: проверяет, существуют ли все значения в массиве в качестве атрибутов в указанной модели, обеспечивая ссылочную целостность [1].
- Правило разграниченного: проверяет строки, содержащие значения разделителей (например, электронные письма, разделенные запятыми), включая параметры для установки минимальных/максимальных элементов, разрешения дубликатов и настройки сепараторов [1].

Эти правила легко интегрируются с системой проверки Laravel, позволяя разработчикам определять их в методе «Rules ()` ‘)» или массивах встроенных валидаций.

Проверка в пакете данных Spatie Laravel

Пакет данных Spatie Laravel расширяет проверку за счет проверки данных перед созданием объектов данных. Проверка происходит автоматически, когда:

- Введение объекта данных из запроса.
- Вызов метода `from` на объект данных с данными запроса.

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

Двухэтапная проверка

Spatie исследует двухэтапный подход проверки, где:

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

Этот подход может повысить надежность, рано улавливая ошибки и обеспечивая более четкую отзыв о валидации [7].

Дезинфицирование

В то время как пакеты Spatie фокусируются в основном на проверке, сама Laravel сама обрабатывает дезинфекцию неявно посредством проверки и привязки данных. Например, запросы формы Laravels автоматически дезинфицируют входы путем проверки и фильтрации данных до того, как они будут использованы в приложении. Правила проверки Spatie дополняют это за счет того, что данные соответствуют конкретным бизнес -правилам или форматам.

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

Краткое содержание

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

Этот подход гарантирует, что пользовательский ввод строго проверяется в соответствии с правилами, специфичными для приложения перед обработкой, снижением ошибок и улучшением безопасности.

Цитаты:
[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-nection-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-and-in-control
[9] https://spatie.be/docs/laravel-model-states/v2/request-validation/01-state-validation-rule