Laravel için Spatie paketi, öncelikle güvenli sorgu oluşturma yöntemleri ve kullanıcı girişini doğrudan ham SQL sorgularına gömmekten kaçınan filtreleme mekanizmaları ile SQL enjeksiyonunu önlemeye yardımcı olur. Spatie paketinde SQL enjeksiyonunu önlemeye yardımcı olan temel işlevler ve özellikler şunları içerir:
- İzin verilen filtreler () yöntemi: Bu işlev, bir sorguda hangi filtrelere izin verildiğini belirtmenizi sağlar ve kabul edilebilir sorgu parametrelerini etkili bir şekilde beyaz listeleyebilir. Filtreleri yalnızca açıkça izin verilenlerle kısıtlayarak, saldırganların beklenmedik veya güvenli olmayan sorgu parametreleri yoluyla kötü amaçlı SQL enjekte etmesini önler [2].
- Laravel'in sorgu üreticisinin kullanımı ve Eloquent ORM: Spatie Paket, dahili olarak parametrelendirilmiş sorguları ve hazırlanmış ifadeleri kullanan Laravel'in sorgu oluşturucu ve Eloquent ORM'den yararlanır. Bu mekanizmalar, kullanıcı girişlerini ham SQL dizelerine birleştirmek yerine parametreler olarak otomatik olarak bağlar, böylece enjeksiyon saldırılarını önler [1] [4].
- Güvenli olmayan çiğ SQL fonksiyonlarından kaçınma: Paket, kullanıcı girişini doğrudan enterpolat eden ham SQL sorgularından kaçınmayı teşvik eder. Bunun yerine, sorgu katmanına ulaşmadan önce girdileri sterilize eden ve doğrulayan filtreler ve kapsamlar gibi güvenli soyutlamalar kullanmayı teşvik eder [2] [3].
Özetle, Spatie paketi, Laravel'in güvenli sorgu oluşturucusuna dayanan filtreleme ve sorgulama için daha güvenli bir alana özgü dil (DSL) sağlayarak SQL enjeksiyonu önlemeye yardımcı olur. `` Dairfilters () 'gibi spesifik işlevleri, beyaz liste girişlerine yardımcı olur, sorgularda yalnızca güvenli, onaylanmış parametrelerin kullanılmasını sağlar, böylece SQL enjeksiyon risklerini etkili bir şekilde azaltır [2].
Alıntılar:
[1] https://escape.tech/blog/laravel-sql-injection-guide/
[2] https://www.reddit.com/r/laravel/comments/bbxhoc/unsafe_sql_functions_be_aware_of_your/
[3] https://stitcher.io/blog/unsafe-sql-functions-in-laravel
[4] https://www.kiuwan.com/blog/top-5-best-practices-for-de-developers-on-preventing-sql-injections-tacks/
[5] https://www.baeldung.com/sql-injection
[6] https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php
[7] https://stackoverflow.com/questions/1862036/how-do-i--protect-this-fonction-from-sql-injection
[8] https://cheatsheetseries.owasp.org/cheatsheets/sql_injection_prevention_cheat_sheet.html