0Pricing
PHP Academy · Ders

CSRF Koruması

Sahte istekleri önlemek için formlarda CSRF belirteçleri oluşturun ve doğrulayın.

CSRF Koruması, CoddyKit'te ücretsiz bir PHP Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, PHP Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. PHP Academy kursu toplamda 4 dersten oluşur.

CSRF Nedir?

Siteler Arası İstek Sahteciliği (CSRF), kimliği doğrulanmış kullanıcıları istenmeyen işlemler göndermeleri için kandırır. Kötü amaçlı bir sayfa, kurbanın etkin oturumunu kullanarak sitenize sahte bir istek gönderir.

CSRF Nasıl Çalışır

Senaryo: Alice bank.com'a giriş yapmıştır. Oturum çerezini kullanarak bank.com'a bir para transferi isteğini otomatik olarak gönderen gizli bir form içeren malicious.com'u ziyaret eder.

CSRF Belirteçleri

Korunma yöntemi, her forma yerleştirilen oturum başına özel bir belirteçtir. Sunucu, POST/PUT/PATCH/DELETE isteklerinde belirteci doğrular; başka bir kaynaktan gelen sahte istek belirteci okuyamaz.

Laravel Blade'de @csrf

Verileri değiştiren her HTML formuna @csrf yönergesini ekleyin.

<form method="POST" action="/transfer">
    @csrf
    <input name="amount" type="number">
    <button>Transfer</button>
</form>

CSRF Ara Katmanı

Laravel'in VerifyCsrfToken ara katmanı, web ara katmanı grubundaki GET dışındaki tüm isteklerde X-CSRF-TOKEN üst bilgisini veya _token alanını denetler.

AJAX için CSRF

AJAX isteklerinde belirteci meta etiketinden okuyup üst bilgi olarak gönderin.

// In the HTML head:
<meta name="csrf-token" content="{{ csrf_token() }}">

// In JavaScript (Axios):
axios.defaults.headers.common["X-CSRF-TOKEN"] =
    document.querySelector("meta[name=csrf-token]").content;

Rotaları Hariç Tutma

API rotaları (Sanctum belirteçlerini kullananlar) genellikle CSRF korumasından hariç tutulur; çünkü çerezler yerine belirteç tabanlı kimlik doğrulama kullanırlar.

<?php
// In VerifyCsrfToken $except:
protected $except = [
    "api/*",
    "webhooks/*",
];

SameSite Çerez Özniteliği

Oturum çerezinde SameSite=Strict veya Lax ayarlamak, modern tarayıcılarda ek bir CSRF savunma katmanı sağlar.

Çift Gönderimli Çerez Deseni

API'ler için alternatif bir CSRF savunması: belirteci hem çerez hem de istek üst bilgisi olarak gönderin. Sunucu bunların eşleştiğini doğrular; kaynaklar arası istekler çerezleri okuyamaz.

API Bağlamlarında CSRF

Bearer belirteçleriyle (Sanctum, JWT) kimlik doğrulayan REST API'leri CSRF'ye karşı savunmasız değildir; çünkü belirteçler localStorage içinde saklanır ve tarayıcı tarafından otomatik olarak gönderilmez.

CSRF'yi Sınama

Laravel sınama yardımcıları CSRF belirteçlerini otomatik olarak ekler. Ayrıca korumasız POST isteklerinin reddedildiğini de sınayabilirsiniz.

<?php
// With token:
$this->post("/transfer", ["_token" => csrf_token(), "amount" => 100]);
// Simulating CSRF attack (no token):
$this->withoutMiddleware(VerifyCsrfToken::class)->post("/transfer", [...]);

Özet

CSRF koruması, durum değiştiren her formda gizli bir belirteç bulunmasını gerektirir. Laravel bunu @csrf ile otomatik olarak yönetir. AJAX için belirteci bir HTTP üst bilgisi olarak ekleyin. Bearer belirteçlerini kullanan API rotaları etkilenmez.

Hızlı Kontrol

Bir Laravel Blade formuna CSRF korumasını nasıl eklersiniz?

Sıkça Sorulan Sorular

“CSRF Koruması” dersi ücretsiz mi?

Evet — “CSRF Koruması” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve PHP Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. PHP Academy kursu toplamda 4 dersten oluşur.

“CSRF Koruması” dersinde ne öğreneceğim?

Sahte istekleri önlemek için formlarda CSRF belirteçleri oluşturun ve doğrulayın. PHP Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

PHP Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te PHP Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“CSRF Koruması” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu PHP Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her PHP Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Siteler Arası Betik Çalıştırmayı (XSS) Önleme
  2. SQL Enjeksiyonu ve Parametreli Sorgular
  3. CSRF Koruması
  4. Güvenli Parola Saklama
← PHP Academy Sayfasına Dön