Laravel Güvenliği İçin En İyi İpuçları
Yayınlanan: 2021-12-10Laravel, PHP için en popüler çerçevelerden biridir. Web uygulamaları geliştirmeyi kolaylaştıran birçok harika özelliğe sahiptir. Bununla birlikte, bilmeniz gereken güvenlik açıkları payına da sahiptir. Bu blog gönderisinde, uygulamanızın güvenliğini sağlamaya ve müşterinizin verilerinin tehlikeye atılmamasına yardımcı olacak bazı en iyi uygulamalar ele alınacaktır.
Ek olarak, PHP ile çok çalışıyorsanız, bu 10 En İyi PHP Kod Güvenlik Tarayıcısına göz atın!
Laravel Güvenliği İçin En İyi İpuçları
Şimdi Laravel uygulamanızın güvenliğini sağlamak için kullanabileceğiniz bazı en iyi uygulamalardan bahsedeceğim.
güncel tut
Her şeyden önce, yazılımınızı her zaman güncel tuttuğunuzdan emin olun. Bu, çerçevenin kendisini ve kullandığınız üçüncü taraf kitaplıklarından herhangi birini içerir. Her zaman yeni güvenlik açıkları keşfedilir, bu nedenle hangi güvenlik açıklarının ne zaman düzeltildiğinden haberdar olmanız önemlidir. Gelecekte güvenliğinizle ilgili bir sorun olursa, sizi birçok baş ağrısından kurtarabilir!
CSRF'den Laravel Güvenlik Açıklarını Azaltın
CSRF (Siteler Arası İstek Sahteciliği), bir saldırgan, kullanıcıyı, kimliklerinin zaten doğrulanmış olduğu bir web uygulamasında işlem yapması için kandırdığında meydana gelir. Amaç, kullanıcılarınızı (veya otomatik botları) kandırmak ve siz değilmişsiniz gibi eylemler göndermelerini sağlamaktır.
Bunun yaygın bir yolu, örneğin, resim yerleştirmeyi destekleyen e-posta veya mesajlaşma platformları kullanmak olabilir. Bu görüntüler, JavaScript ile oluşturulan ve kullanıcı az önce ne olduğunu bilmeden otomatik olarak gönderilen gizli form verilerini içerecektir!
Laravel Kimlik Doğrulama Sistemi
Laravel'in kimlik doğrulama sistemi, güçlü noktalarından biridir. Kullanıcıların kimliğini doğrulamak ve izinleri yönetmek için kolay bir yol sağlar, ancak bazı güvenlik zayıflıkları da vardır. Laravel'in kimlik doğrulama sistemiyle ilgili temel sorunlardan biri, varsayılan olarak bir kullanıcı oturumu kapattığında oturumları geçersiz kılmamasıdır. Bu, .env dosyasında oturum zaman aşımını 0'a ayarlayarak kolayca düzeltilebilir.
XSS'ye Karşı Koruma – Siteler Arası Komut Dosyası Çalıştırmayı Önleme
Bu, saldırganların uygulamanız bağlamında komut dosyası kodu yürütmesine olanak tanıyan bir güvenlik açığıdır. Bu, oturum ele geçirme, kimlik avı saldırıları ve çok daha fazlasına yol açabilir! XSS, kullanıcı girişi önce doğrulanmadan veya kodlanmadan bir HTML sayfasına dahil edildiğinde oluşur.
Bunun olmasını önlemenin en iyi yolu, mümkün olduğunda Laravel Blade şablonlama motorunun üçlü küme parantezleri sözdizimini kullanmaktır: {{{ }}}. Varsayılan olarak bir güvenlik özelliği olarak uygulandığından, savunmasız olabileceğinden kullanıcı girdisini doğrudan herhangi bir rota/denetleyici dosyasından yansıtmak yerine her yerde kullanmalısınız.
SQL Enjeksiyonu
SQL enjeksiyonu, saldırganların uygulamanız bağlamında SQL deyimleri yürütmesine izin veren bir güvenlik açığıdır. Bu, veri kaybına, bilgilerin çalınmasına ve daha fazlasına yol açabilir! Bunun olmasını önlemenin en iyi yolu hazırlanmış ifadeler kullanmaktır. Laravel, sorgu oluşturucusu ile bunu yapmanın kolay bir yolunu sunar. Uygulamanızda mümkün olduğunca parametreli sorgular kullanmalısınız.
Tüm Verileri Filtreleyin ve Doğrulayın
Geliştiricilerin yaptığı en yaygın güvenlik açıklarından biri, kullanıcı girişini doğrulamamaktır. Bu, siteler arası komut dosyası çalıştırma (XSS) gibi enjeksiyon saldırıları gibi şeylere yol açabilir. Laravel, farklı bilgi türleri için filtreler aracılığıyla uygulamanıza gelen tüm verileri filtrelemek ve doğrulamak için basit bir yol sağlar.
Oturumları Geçersiz Kıl
Laravel uygulamanızın güvenliğini sağlamanın birkaç yolu vardır ve yapabileceğiniz en önemli şeylerden biri oturumları yönetmektir. Bir uygulamanın çerçevesi ne pahasına olursa olsun korunmalıdır, çünkü durumundaki herhangi bir büyük değişiklik onu saldırı faktörlerine karşı savunmasız bırakabilir.
Laravel Security geliştiricileri, oturumunuzu otomatik olarak yok ederek ve geçersiz kılarak güvende olmanızı sağlar.
Karma İşlevlerini Kullanarak Parolayı Saklayın
Laravel'de yeni bir kullanıcı hesabı oluşturduğunuzda, çerçeve, parolanızı saklamadan önce hashlemek için Bcrypt'i kullanır. Karma işlevleri, tersine çevrilmeleri çok zor olacak şekilde tasarlanmıştır; bu, kullanıcıların rastgele karakter dizilerini hatırlamaları gerekmediğinden, parolalar için harika olmalarını sağlar.

SSL/TLS Yapılandırmasını Kontrol Edin
SSL sertifikaları da uygulamanızın güvenliği açısından önemlidir. Daha eski bir sürüm kullanıyorsanız, her iki tarafta (tarayıcı-sunucu) güvenli ve güvenli bir bağlantı sağlayabilmeniz için güncellemek en iyisidir.
Oran Sınırı Talebi
Hız sınırlama, kötü niyetli kullanıcıların uygulamanızı isteklerle aşırı yüklemesini önlemenin basit ve etkili bir yoludur. Laravel, bu amaç için kullanımı kolay bir hız sınırlayıcı sağlar; bu, dakikada belirli bir isabet eşiğine ulaşması durumunda herhangi bir isteğe ekleyebileceğiniz bir hız sınırlayıcıdır.
Her Şeyi Günlüğe Kaydet
Hatalar da dahil olmak üzere uygulamanızda olan her şeyi günlüğe kaydetmek her zaman iyi bir fikirdir. Bu, sorunları gidermenize yardımcı olabilir ve ayrıca bir şeyler ters giderse değerli bilgiler sağlayabilir. Laravel, yerleşik günlüğe kaydetme işleviyle uygulamanızın tüm etkinliğini günlüğe kaydetmeyi kolaylaştırır.
Mevcut Tüm Güvenlik Başlıklarını Gönder
Ayrıca mevcut tüm güvenlik başlıklarını göndererek Laravel uygulamanızın güvenliğini artırabilirsiniz. Bunlar, uygulamanız hakkında bilgi sağlayan ve çeşitli saldırılardan korunmasına yardımcı olan başlıklardır. Laravel, yerleşik ara yazılımı ile bu başlıkları kolayca göndermenin bir yolunu sunar.
X-Frame Seçenekleri
Mevcut tüm güvenlik başlıklarını göndermenin yanı sıra, uygulamanızın diğer sitelere enjekte edilmesini önleyerek de güvenliğini artırabilirsiniz. Bu, X-Frame seçeneği adı verilen bir şey aracılığıyla yapılır - sitenizin başka bir web sitesi iframe içine yerleştirilmesini engelleyen bir başlık.
X-XSS-Koruması
Eklenecek bir diğer önemli güvenlik başlığı, X-XSS-Protection'dır. Bu, uygulamanızın günümüzde web'de en yaygın olan siteler arası komut dosyası çalıştırma saldırılarına açık olmasını engeller.
HSTS
HSTS başlığı, uygulamanızın güvenliğini artırmanın başka bir harika yoludur. Bu başlık, tarayıcılara, sitenizle yalnızca güvenli bir bağlantı üzerinden iletişim kurmaları gerektiğini söyler; bu, ortadaki adam saldırılarına karşı korunmaya yardımcı olabilir.
İçerik Güvenliği Politikası
Bu başlık, tarayıcılara sitenize hangi tür içeriğin yüklenmesine izin vermeleri gerektiğini söyler ve siteler arası komut dosyası çalıştırma ve diğer kötü niyetli saldırılar gibi şeylere karşı korunmaya yardımcı olur.
X-İçerik-Türü-Seçenekler
Bu başlık, bir tarayıcının bağladığınız dosyanın MIME türünü koklamaya çalışmasını engeller. Bu, günümüzde bilgisayar korsanları ve siber suçlular tarafından yaygın olarak kullanılan içerik türü tabanlı saldırılar gibi şeylerin önlenmesine yardımcı olabilir.
İçerik Güvenliği Politikasına Sahip Olun
Uygulamanızın güvenliğini artırmanın en iyi yollarından biri, bir içerik güvenliği politikasına sahip olmaktır. Bu, tarayıcılara sitenize hangi tür içeriğin yüklenmesine izin vermeleri gerektiğini söyleyen bir dizi kuraldır. Bir içerik güvenliği ilkesi kullanarak uygulamanızı birçok farklı saldırı türünden korumaya yardımcı olabilirsiniz.
Çerez Koruması
Çerezler, bilgisayar korsanlarının kullanıcılardan bilgi çalmasının yaygın bir yoludur. Tarayıcılara komut dosyalarının bunlara erişmesine izin vermemelerini ve yalnızca bunları almak için güvenli bağlantılara izin vermelerini söyleyen HttpOnly ve Secure bayraklarını kullanarak çerezlerinizin korunmasına yardımcı olabilirsiniz.
Laravel Güvenlik Paketleri
Aşağıdakiler, mevcut en iyi Laravel Güvenlik Paketlerinden bazılarıdır.
Laravel-ACL
Laravel-ACL paketi, uygulamalardaki CRUD ve rotalar gibi denetleyici yöntemlerini korumanın yanı sıra, rol Tabanlı Erişim Kontrolü ile doğru izinlere sahip olmanızı sağlamanın bir yolunu sunar.
laravel güvenlik
Laravel Security, yardımcı özellikleriyle kod tabanınızın XSS saldırılarından korunmasını sağlar.
Laravel Güvenlik Bileşeni
Hassas varlıklarınızı korumak için Laravel ve Symfony'nin güvenlik çekirdeğine sahip bir pakete ihtiyacınız var. Bu çok iyi yapacak!
Çözüm
Sonuç olarak, Laravel uygulamanızın güvenliğini sağlamaya yardımcı olmak için kullanabileceğiniz birkaç en iyi uygulama vardır. Yazılımınızı güncel tuttuğunuzdan emin olun, CSRF açıklarını azaltın, XSS saldırılarına karşı koruyun ve mümkün olduğunca hazırlanmış ifadeler kullanın. Bu ipuçlarını takip etmek, müşterinizin verilerinin güvenli ve emniyetli olmasını sağlamaya yardımcı olacaktır. Okuduğunuz için teşekkürler!
