Spatie paketi, öncelikle bir dizi özel Laravel doğrulama kuralları ve Laravel'in doğrulama sistemi ile entegrasyon yoluyla kullanıcı giriş doğrulamasını yönetir ve verileri işlenmeden veya kaydedilmeden önce doğrulamak için yapılandırılmış ve genişletilebilir bir yaklaşım sağlar.
Spatie Paketlerinde Doğrulama Yönetimi
Özel Doğrulama Kuralları
Spatie, Laravel'in yerel doğrulama yeteneklerini genişleten yararlı doğrulama kuralları koleksiyonu sunar. Bu kurallar Laravel form isteklerinde veya doğrudan denetleyici doğrulama mantığında kullanılabilir. Örnekler şunları içerir:- Yetkili Kural: Oturum açılan kullanıcının, kullanıcı kimliklerini eşleştirme gibi politikaları kontrol ederek bir model örneğinde belirli bir işlem gerçekleştirme yetkisine sahip olup olmadığını doğrular [1].
- Para Birimi Kuralı: Verilen bir girişin geçerli bir para kodu olup olmadığını doğrular ve ISO 3166 standartlarını destekler [1].
- Enum kuralı: Giriş değerinin güçlü bir şekilde yazılmış veriler için kullanışlı, önceden tanımlanmış bir enum değerleri kümesine ait olduğunu doğrular [1].
- ModelSexist Kural: Bir dizideki tüm değerlerin belirli bir modelde nitelikler olarak var olup olmadığını kontrol ederek referans bütünlüğünü sağlar [1].
- Sınırlı Kural: Minimum/maksimum öğeleri ayarlama, kopyalara izin verme ve ayırıcıları özelleştirme seçenekleri dahil olmak üzere sınırlandırılmış değerler (örn. Emici olarak ayrılmış e-postalar) içeren dizeleri doğrular [1].
Bu kurallar, Laravel'in doğrulama sistemi ile sorunsuz bir şekilde entegre olur ve geliştiricilerin bunları `` kuralları () `form istekleri veya satır içi doğrulama dizilerinde tanımlamalarına olanak tanır.
Spatie Laravel veri paketinde doğrulama
Spatie Laravel veri paketi, veri nesneleri oluşturmadan önce verileri doğrulayarak doğrulamayı geliştirir. Doğrulama otomatik olarak gerçekleşir:- Bir veri nesnesini bir istekten enjekte etmek.
- İstek verileri içeren bir veri nesnesindeki `` yöntemini çağırmak.
Ayrıca doğrulamayı `validate ()` veya `validateAndCreate () 'gibi yöntemlerle manuel olarak tetikleyebilirsiniz. Paket, doğrulamayı tamamen doğrulamak veya devre dışı bırakmak gibi doğrulama stratejilerinin yapılandırılmasını destekler ve doğrulama gerçekleştiğinde üzerinde ince taneli kontrol sağlar [4].
İki Adımlı Doğrulama
Spatie, iki aşamalı bir doğrulama yaklaşımını araştırıyor:- İlk adım, veri yapısının sağlam olduğundan emin olmak ve PHP hatalarını önlemek için temel kuralları uygular.
- İkinci adım daha karmaşık doğrulama kuralları uygular.
Bu yaklaşım, hataları erken yakalayarak ve daha net doğrulama geri bildirimi sağlayarak sağlamlığını artırabilir [7].
Sanitizasyon
Spatie'nin paketleri esas olarak doğrulamaya odaklanırken, Laravel'in kendisi, doğrulama ve veri bağlama yoluyla sanitizasyonu dolaylı olarak işler. Örneğin, Laravel'in formu, uygulamada kullanılmadan önce verileri doğrulayarak ve filtreleyerek girişleri otomatik olarak sterilize eder. Spatie'nin doğrulama kuralları, verilerin belirli iş kurallarına veya biçimlerine uygun olmasını sağlayarak bunu tamamlar.Geliştiriciler, özel doğrulama özellikleri oluşturarak veya gerektiğinde doğrulamadan önce veya sonra girdileri manuel olarak sterilize ederek dezenfektan hale getirebilir [3].
Özet
- Spatie, Yetkilendirme Kontrolleri, Dönem Doğrulama, Varlık Kontrolleri ve Sınırlı Giriş Validasyonu gibi ortak ve karmaşık doğrulama senaryoları için zengin bir dizi Laravel doğrulama kuralları sunar [1].- Spatie'nin Laravel veri paketi, el manuel veya otomatik doğrulama seçenekleri ve yapılandırılabilir doğrulama stratejileri ile nesne oluşturma öncesi verileri doğrular [4].
- Doğrulama sağlamlığını artırmak için iki aşamalı bir doğrulama işlemi geliştirilmektedir [7].
- Sanitasyon genellikle Laravel'in validasyonu ve girdi işleme mekanizmaları ile ele alınır, Spatie'nin araçları doğrulama doğruluğu ve genişletilebilirliğine odaklanır [3].
Bu yaklaşım, işlenmeden önce, hataları azaltmadan ve güvenliği artırmadan önce kullanıcı girişinin uygulamaya özgü kurallara göre titizlikle doğrulanmasını sağlar.
Alıntılar:
[1] https://github.com/spatie/laravel-validation-rules
[2] https://zapkit.dev/blog/ultate-guide-to-validate ve-sanitize-http-requests-in-laravel
[3] https://spatie.be/docs/laravel-data/v4/validation/using-validation-ttributes
[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-apermissions-with-spatie-package-fails-in--rutes-and-in-in-in-in
[9] https://spatie.be/docs/laravel-model-states/v2/request-validation/01-state-validation-rule