Symfony’de Hassas Veriyi Gizleyen Eklenti

Symfony'de Hassas Veriyi Gizleyen: Symfony'de Hassas Veriyi Gizleyen Eklenti: Symfony'de Hassas Veriyi Gizleyen Eklenti Symfony'de Hassas Veriyi Gizleyen Eklenti kapsamında, Yakın zamanda MaskedBundle adında küçük bir açık kaynaklı Symfony paketi yayınladım. Bunu oluşturmanın nedeni oldukça basitti:…

8
Paylaş
Symfony’de Hassas Veriyi Gizleyen Eklenti

Symfony'de Hassas Veriyi Gizleyen: Symfony'de Hassas Veriyi Gizleyen Eklenti: Symfony'de Hassas Veriyi Gizleyen Eklenti

Symfony'de Hassas Veriyi Gizleyen Eklenti kapsamında, Yakın zamanda MaskedBundle adında küçük bir açık kaynaklı Symfony paketi yayınladım. Bunu oluşturmanın nedeni oldukça basitti: günlükler faydalıdır ancak bazen orada olmaması gereken değerleri içerebilirler. Hassas değerleri günlüklere veya diğer teşhis çıktılarına ulaşmadan önce maskelemek için Symfony projelerinde yeniden kullanabileceğim bir şey istedim.

Symfony'de Hassas Veriyi Gizleyen nedir, nelere dikkat edilir

Symfony'de Hassas Veriyi Gizleyen ile ilgili temel noktaları aşağıda adım adım özetliyoruz.

Symfony'de Hassas Veriyi Gizleyen Eklenti nedir, nelere dikkat edilir

Symfony'de Hassas Veriyi Gizleyen Eklenti ile ilgili temel noktaları aşağıda adım adım özetliyoruz.

Temel kullanım Kurulum: besteci alkinbg/masked-bundle gerektirir Örneğin: use MaskedBundleSensitiveDataMasker; son sınıf Ödeme Hizmeti { genel işlev __construct( özel salt okunur SensitiveDataMasker $masker, ) { } public fonksiyon örneği(): string { return $this->masker->mask( ‘Kart: 4111111111111111’, ); } } Sonuç: Kart: ████████████████ Şu anda otomatik algılama, ödeme kartı numaralarına odaklanmaktadır.

Kasıtlı olarak her olası belirteci, şifreyi veya sırrı otomatik olarak tespit etmeye çalışmıyorum. Çok fazla format var ve tahminde bulunmak kolaylıkla hatalı sonuçlar üretebilir. Bunun yerine, uygulama tarafından bilinen değerler açıkça iletilebilir: $token = ‘secret-access-token’; $masked = $hassasDataMasker->mask( ‘Belirteç için kimlik doğrulama başarısız oldu’.

Tasarım ve teknik ayrıntılar

$jeton, hassasDeğerler: [$belirteç], ); Sonuç: ███████████████████ belirteci için kimlik doğrulama başarısız oldu. Her iki yaklaşım da birlikte kullanılabilir.

Diziler ve günlükler Diziler için ayrıca bir StructuredDataMasker vardır: $masked = $structuredDataMasker->mask([ ‘müşteri’ => [ ‘kart’ => ‘4111111111111111’, ], ]); Paket Dosyanın ayrıca isteğe bağlı Monolog entegrasyonu da vardır, böylece mesajlar ve içerik günlüğe yazılmadan önce maskelenebilir. Monolog kısmını isteğe bağlı tuttum çünkü maskeleme servisleri kendi başlarına da faydalı olabilir.

Symfony'de Hassas Veriyi Gizleyen

Önemsediğim bir şey Bu kod hassas verileri işlediğinden, alışılmadık girdilerin kısmen kontrol edilen verilerin döndürülmesine neden olmasını istemedim. Çok büyük diziler ve açık değer aramaları gibi şeyler için sınırlamalar vardır. Algılama bütçesi aşılırsa maskeleme işlemi başarısızlıkla kapatılmayı tercih eder.

Bugünden bakınca ne kadar güvenilir?

Dahili olarak biraz karmaşıklık katıyor, ancak bunun bu tür bir kütüphane için daha güvenli bir davranış olduğunu düşünüyorum. İşte bu kadar MaskedBundle şu anda PHP 8.4.1+ ve Symfony 8.1+ gerektiriyor. MIT lisanslıdır: https://github.com/alkinbg/masked-bundle https://packagist.org/packages/alkinbg/masked-bundle Symfony kullanıyorsanız ve herhangi bir geri bildiriminiz varsa, bunu duymaktan memnuniyet duyarım.

Ek okuma: MDN Web Docs

Editörün Notu

Hassas verilerin günlüklerde güvenli şekilde maskelenmesi, veri sızıntılarını önlemek ve uyumluluğu artırmak için kritik bir adımdır; MaskedBundle gibi araçlar, Symfony projelerinde bu süreci kolaylaştırarak geliştiricilere zaman kazandırır.

Emre Demir
Yazar

Yazılım Editörü

Yazılım editörü ve full-stack geliştirici. Uygulama incelemeleri, kodlama rehberleri ve verimlilik araçları üzerine yazıyor. Açık kaynak projelere katkıda bulunuyor; karmaşık konuları yeni başlayanların anlayacağı şekilde anlatmaya özen gösteriyor.

Tüm yazıları gör →