Laravel Güvenliği İçin En İyi İpuçları

Yayınlanan: 2021-12-10

Laravel, 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!