ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!
"CSRF" kısaltması Cross-Site Request Forgery'nin kısaltmasıdır. CSRF, güvenilir bir web sitesi kullanıcısının yetkisiz komutlar vermesini içeren bir İnternet saldırısıdır. Bu saldırıya karşı bir PHP web uygulamasına yeterli koruma sağlamak, bu bölümde açıklanan önlemleri alarak sağlanabilir.
Varsayılan olarak, tarayıcı veri göndermek için "GET" istek yöntemini kullanır. Bu genellikle bir CSRF'deki istismar noktası olarak kullanılır. Belirli bir web sitesine komutlar enjekte etmek için saldırgan "IMG" gibi HTML etiketleri kullanır. Örneğin, "/delete.php?empcode=1234" gibi bir web uygulamasının URL uç noktası, bir GET isteğinin empcode parametresinden geçirilen hesabı siler. Şimdi, kimliği doğrulanmış bir kullanıcı başka bir uygulamada aşağıdaki betiğe rastlarsa:
<img src="
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
İstemsizce empcode=1234 ile ilgili verilerin silinmesine neden olur.
Bu sorun için yaygın bir geçici çözüm CSRF belirteçlerinin kullanılmasıdır. CSRF belirteci, bir web uygulamasının normal iş akışına göre beklenen bir kaynaktan bir istek alındığına güvenebilmesi için isteklere gömülmüş rastgele karakterlerden oluşan bir dizedir.
CSRF'yi Uygulama Adımları
PHP'de CSRF belirteç korumasını uygulama adımları aşağıdaki gibidir:
Yeni bir oturum başlatarak senaryoyu başlatın.
Rastgele karakterlerden oluşan bir belirteç üretin. PHP'nin rastgele dize üretimi için sağladığı çeşitli yerleşik işlevlerden herhangi birini kullanabilirsiniz. Benzersiz bir rastgele dize üreten uniqueid() işlevinin karma değerini elde etmek için md5() işlevini kullanalım.
Kullanıcının veri göndermesi için sağlanacak HTML formunun içerisine, yukarıdaki adımda oluşturulan rastgele token değerini içeren gizli bir dosya ekleyin.
Form gönderildikten sonra token, kötü amaçlı istekleri ortadan kaldırmak için sunucu tarafından kullanıcı oturumuna göre doğrulanabilir.
Ayrıca değeri geçerli zaman olan başka bir oturum değişkeni ekleyebilir ve doğrulama amacıyla bir son kullanma tarihi gönderebilirsiniz.
Örnek
İşte CSRF token doğrulama mekanizmasını uygulayan PHP kodu. Aşağıdaki betik bir token üretir ve bir HTML formuna gömer.
CSRF doğrulamasının başarısızlığını simüle etmek için tarayıcının inceleme aracını açın, gizli alandaki değeri elle düzenleyin ve belirteçlerin eşleşmediğini ve doğrulama başarısızlığına yol açtığını görmek için formu gönderin.