PHP 7.4 ile CSRF (Cross-Site Request Forgery) saldırılarına karşı korunma nasıl sağlanır?

CSRF, bir kullanıcının kimliği doğrulandıktan sonra yetkisiz işlemler gerçekleştirmek için kullanıcının tarayıcısını kötü niyetli bir şekilde kullanma saldırı türüdür. Bu tür saldırılara karşı korunma önlemleri almak, web uygulamalarının güvenliği açısından önemlidir. PHP 7.4 ile bu tür saldırılara karşı etkili bir şekilde savunma yapmak mümkündür.

CSRF Nedir?

Cross-Site Request Forgery, bir kullanıcının tarayıcıda yetkili olduğu bir oturum açtıktan sonra, istem dışı olarak istekler göndermesine neden olan bir saldırı türüdür. Saldırgan, kurbanın tarayıcısına kötü niyetli bir web sayfası aracılığıyla istek gönderebilir. Kullanıcının tarayıcısı, kurbanın oturum bilgilerini taşıdığından, bu istekler sunucu tarafında kullanıcı tarafından yapılmış gibi görünür.

CSRF Koruma Yöntemleri

CSRF’ye karşı koruma için çeşitli yöntemler bulunmaktadır. Bu yöntemler genelde token tabanlı sistemler üzerine inşa edilmiştir.

Token Oluşturma

CSRF saldırılarına karşı en yaygın ve etkili yöntem, her form için benzersiz bir iletişim belirteci (token) oluşturmaktır. PHP’de bu işlem, session tabanlı bir sistem ile birlikte gerçekleştirilebilir. Öncelikle, her oturum açıldığında bir token oluşturulmalı ve bu token sayfada form olarak kullanıcıya sunulmalıdır.

“`php
session_start();

if (empty($_SESSION[‘csrf_token’])) {
$_SESSION[‘csrf_token’] = bin2hex(random_bytes(32));
}

$csrf_token = $_SESSION[‘csrf_token’];
“`

Form İçerisinde Token Kullanımı

Oluşturulan token, form içerisinde gizli bir alan olarak eklenmelidir. Bu alan, istek gönderilmeden önce kullanıcı tarafından doldurulacak ve sunucuya gönderilecektir.

“`html


“`

Sunucu Tarafında Token Doğrulama

Form gönderildiğinde, sunucu tarafında gönderilen token ile oturumda saklanan token karşılaştırılmalıdır. Bu işlem, isteklerin doğruluğunu kontrol eder. Eğer token’lar eşleşmezse, istek reddedilmelidir.

“`php
session_start();

if ($_SERVER[‘REQUEST_METHOD’] === ‘POST’) {
if (hash_equals($_SESSION[‘csrf_token’], $_POST[‘csrf_token’])) {
// İstek geçerlidir, işleme devam edilir.
} else {
// CSRF koruması başarısız, istek reddedilir.
die(“CSRF token validation failed.”);
}
}
“`

Çerezlerde CSRF Koruması

Bir diğer yöntem, çerezlerde bir CSRF koruma mekanizması oluşturmaktır. Bu yöntem, her istek üzerinde ekstra bir kontrol yapmak için kullanılabilir. CSRF token’ı, hem form verilerine hem de çerezlere eklenebilir. Sunucu, her iki değer arasında doğrulama yaparak isletimlerin güvenliğini artırabilir.

CORS ile Yanıt Kontrolü

Cross-Origin Resource Sharing (CORS), farklı kökenlere sahip isteklere izin verme mekanizmasıdır. CORS ayarları, web uygulamasının yalnızca belirli alan adlarına istek kabul etmesi için yapılandırılabilir. Bu şekilde, sunucu, isteklerin hangi kökenlerden geldiğini kontrol edebilir ve yalnızca güvenilen alan adlarından gelen isteklere izin verebilir.

HTTP Başlıkları ile Koruma

CSRF koruma için kullanılabilecek bir diğer yöntem, istekleri kontrol etmek amacıyla özel HTTP başlıkları kullanmaktır. Bu başlıklar, yalnızca geçerli sayfalardan gelen isteklere izin vermek için yapılandırılabilir. Örneğin, ‘X-Requested-With: XMLHttpRequest’ başlığı, yalnızca AJAX istekleri için tanınabilir ve bu durumda CSRF koruması sağlanabilir.

Sonuç

PHP 7.4 ile CSRF saldırılarına karşı korunma, web uygulamalarının güvenliğini artırmak için kritik bir adımdır. Token tabanlı sistemler, çerez kontrolleri, CORS ayarları ve özel HTTP başlıkları gibi yöntemler, bu saldırılara karşı etkin bir savunma sağlar. Her geliştiricinin uygulamalarında bu önlemleri dikkate alması ve uygulama içindeki güvenlik seviyesini artırması önemlidir. CSRF koruma stratejileri, kullanıcıların veri güvenliğini sağlamada önemli bir rol oynamaktadır.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz

SON İÇERİKLER

İLGİNİZİ ÇEKEBİLİR