Spatie 패키지는 주로 사용자 정의 Laravel 검증 규칙 세트 및 Laravel의 유효성 검사 시스템과의 통합을 통해 사용자 입력 유효성 검사를 관리하여 처리되거나 저장되기 전에 데이터를 검증하기위한 구조적이고 확장 가능한 접근 방식을 제공합니다.
주사리 패키지의
유효성 검사 관리
사용자 정의 검증 규칙
Spatie는 Laravel의 기본 유효성 검사 기능을 확장하는 유용한 유효성 검증 규칙 모음을 제공합니다. 이 규칙은 Laravel Form 요청 또는 컨트롤러 검증 로직에서 직접 사용할 수 있습니다. 예제는 다음과 같습니다.- 공인 규칙 : 로그인 사용자가 일치하는 사용자 ID와 같은 정책을 확인하여 모델 인스턴스에서 특정 조치를 수행 할 수있는 권한이 있는지 확인합니다 [1].
- 통화 규칙 : 주어진 입력이 ISO 3166 표준을 지원하는 유효한 통화 코드인지 확인합니다 [1].
- 열거 규칙 : 입력 값이 미리 정의 된 열거 값 세트에 속하며 강력하게 입력 된 데이터에 유용합니다 [1].
- ModelSexist 규칙 : 배열의 모든 값이 지정된 모델의 속성으로 존재하는지 확인하여 참조 무결성을 보장합니다 [1].
- 구분 된 규칙 : 최소/최대 항목을 설정하고, 복제를 허용하며, 분리기를 사용자 정의하는 옵션을 포함하여 구분 된 값 (예 : 쉼표로 구분 된 이메일)이 포함 된 문자열을 검증합니다 [1].
이 규칙은 Laravel의 유효성 검사 시스템과 완벽하게 통합되어 개발자는`Rult ()`양식 요청 또는 인라인 유효성 검사 배열에서이를 정의 할 수 있습니다.
Spatie Laravel 데이터 패키지의유효성 검사
Spatie Laravel 데이터 패키지는 데이터 객체를 작성하기 전에 데이터를 검증하여 유효성 검사를 향상시킵니다. 유효성 검사는 다음과 같이 자동으로 발생합니다.- 요청에서 데이터 객체를 주입합니다.
- 요청 데이터가있는 데이터 객체에서`from '메소드를 호출합니다.
`validate ()`또는`validAndcreate ()`와 같은 메소드를 통해 수동으로 유효성 검사를 트리거 할 수도 있습니다. 패키지는 유효성 검사가 발생하는 시점에 대한 세밀한 제어를 제공하는 항상 유효성 검사 또는 비활성화와 같은 유효성 검사 전략 구성을 지원합니다 [4].
2 단계 유효성 검사
Spatie는 다음과 같은 2 단계 검증 접근법을 탐색하고 있습니다.- 첫 번째 단계는 기본 규칙을 적용하여 데이터 구조가 사운드인지 확인하고 PHP 오류를 방지합니다.
- 두 번째 단계는보다 복잡한 검증 규칙을 적용합니다.
이 접근법은 오류를 조기에 포착하고 더 명확한 검증 피드백을 제공함으로써 견고성을 향상시킬 수 있습니다 [7].
소독
Spatie의 패키지는 주로 검증에 중점을두고 있지만 Laravel 자체는 검증 및 데이터 바인딩을 통해 암시 적으로 소독을 처리합니다. 예를 들어, Laravel의 양식 요청은 응용 프로그램에서 사용하기 전에 데이터를 검증하고 필터링하여 입력을 자동으로 소독합니다. Spatie의 유효성 검증 규칙은 데이터가 특정 비즈니스 규칙 또는 형식에 부합하도록함으로써이를 보완합니다.개발자는 사용자 정의 검증 속성을 만들거나 필요에 따라 검증 전후에 입력을 수동으로 소독하여 소독을 확장 할 수 있습니다 [3].
요약
-Spatie는 승인 검사, 열거 검증, 존재 검사 및 구분 입력 검증과 같은 일반 및 복잡한 검증 시나리오에 대한 풍부한 Laravel 검증 규칙 세트를 제공합니다 [1].- Spatie의 Laravel 데이터 패키지는 수동 또는 자동 유효성 검사 및 구성 가능한 유효성 검사 전략에 대한 옵션을 사용하여 객체 생성 전에 데이터를 검증합니다 [4].
- 검증 견고성을 향상시키기 위해 2 단계 검증 프로세스가 개발되고있다 [7].
- 소독은 일반적으로 Laravelâ의 검증 및 입력 처리 메커니즘에 의해 처리되며 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-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 and-in-control
[9] https://spatie.be/docs/laravel-model-states/v2/request-validation/01-state-validation-rule