Laravel Güvenliği

on under jekyll
1 minute read

Merhabalar,

Yazımda Laravelin güvenliğinden bahsedeceğim. Bildiğimiz üzere Laravel php’ni bir frameworküdür ve aralarından en popüleridir. Geçtiğimizi haftalarda Laravel 6 çıktı ve günden güne geliştirilmeye devam edilmektedir.

Laravelin benim açımdan en sevidiğim özelliği yapısında bulunan güvenlik önmelerini kullandırmasıdır. Zaten php frameworklerde Laravel ve Symfony dışında güvenli diye savunacağımız bir framework bulunmamaktadır. Şunuda ekleyebilirim ki Laravel, Symfony’nin bileşenlerinden oluşturulmuştur.

Şimdi laravelin güvenli dediğimiz yapısını inceleyelim.

Kimlik Doğrulama İşlemleri:

Laravel oldukça sağlam bir kimlik doğrulama yapısına sahiptir. Kimlik doğrulamada ‘providers’ ve ‘guards’ adı verilen yapıları kullanır. Providers, Yönlendirme, taşıyıcı bağlama gibi görevleri üstlenir. Uygulamamızı yapılandırmamızı sağlar. Guards, gönderilen her istek için kullanıcıların kimliğinin doğrulanmasını sağlar.

CSRF (Cross Site Request Forgery) Saldırısı Önlemi:

Laravel güvenlik ihlallerini önemseyen bir frameworktür. Üçüncü tarafların sahte istek yapmasını önlemek, CSRF saldırılarından kaçınmak için CSRF tokenleri kullanır. Bu tokenler benzersizdir. Bu güvenliği sağlamak için form etiketlerimizin altına aşağıdaki kodu yazmanız gerekiyor.

@csrf

XSS Saldırısı Önlemi:

Saldırganlar form veya url üzerinden XSS saldırıları gerçekleştirmeye çalışabilir. Laravelin XSS saldırılarından koruyan özelliği bulunmaktadır. Sadece XSS saldırılarına yönelik değildir bu önlem. ‘Escape tags’ adı verdiğimiz etiklerlerin bu tarz durumlarda kullanılmak istenmesi Laravel tarafından engellenir. Engellenen bu kodlar otomatik olarak ekrana bastırılır. Örneğin; <script>alert(‘XSS’);</script> şeklinde tetiklediğim javascript kodu çalışmadan ekrana çıktıtısı Yine <script>alert(‘XSS’);</script> şeklinde olacaktır.

SQL Injection Önlemi:

Laravel gelişmiş bir veritabanı yapısı olan ‘Eloquent ORM’ ı kullanmaktadır. SQL işlemlerinin tetiklendiği yerlerde saldırgan SQL sorguları çalıştırmak isteyebilir fakat eğer Eloquent yapısını kullandığınız sürece saldırgan istediği sonucu alamayacaktır. Eloquent, PDO binding ile girdiyi text formatında sorguya yollayacaktır ve bunun dışındaki oluşturulmak istenilen sorgulara engel olacaktır.

Laravel Cookie Güvenlik Önlemi:

Laravel cookie güvenliği konusundada önlemlerini almıştır. Projenizde ‘Application Key’ oluşturarak önleminizi alabilirsiniz. Laravel 5 ve üstünde Applicatoin key’in adı Encryption Key olarak geçmektedir. Application Key, cookie sınıflarını ve şifreleme kullanarak güvenli şifrelenmiş string ve hash(Bcrypt) değerleri oluşturur. Laravel bu key i kullanarak cookie i onaylar.

Application key oluşturmak için: php artisan key:generate

laravel, güvenlik, xss, csrf, sql