CSRF AÇIĞI
CSRF Nedir?
CSRF, tam açılımıyla Cross-site request forgery. Türkçe karşılığı olarak siteler arası sahtecilik olarak çevirebiliriz.
CSRF hangi durumlarda nasıl oluşur?
CSRF yazılım güvenliğe ile alakalıdır. Girdiğiniz sitede csrf koruması yoksa risk altındasınızdır. İnternette yanlışıkla bir linke tıklamanız bile saldırganın csrf koruması olmayan sitede sizin adınıza istediği işlemi gerçekleştirmesine olanak sağlar.
Facebook da csrf koruması olmadığını düşünelim. Size arkadaşlık isteği geldi. Saldırgan size istediği kişinin arkadaşlık isteğini kabul ettirebilir. Peki nasıl yapar bunu? Örnek bir arkadaşlık isteğini kabul etme işleminin şu url üzerinden gerçekleştiğini kabul edelim.
https://facebook.com/?requestFriendAccept=friendName?status=true
Kurban kendi hesabı açık olan bilgisayarından bu url'ye gidip arkadaşlık isteğini kabul edebilir değil mi?
Peki ben friendName yerine istediğim kişinin adını yazsam ve bu linki bir resime koysam, kurban bu resme tıkladığı an bu url'ye giderek benim isteğim kişinin arkadaşlık isteğini kabul edecektir.
CSRF nasıl engellenir?
CSRF'i engellemenin yolu şu şekildedir. Yukarıdaki arkadaşlık kabul etme isteğini şu şekilde olarak kodlarız
https://facebook.com/?requestFriendAccept=friendName?status=true?SpecialToken=0ed3ecb914f62fa51dd467c96dda5175
Gördüğünüz gibi url'ye bir SpecialToken parametresi atadım. Buradaki specialToken parametresi her kullanıcı için farklılık gösterecektir. Ahmet kullanıcısında buradaki değer X iken Mehmet kullanıcısında Y 'dir ve her oturum açılış kapanışında bu değerler değişecektir.
Dolayısıyla saldırgan bizim SpecialToken değerimizi bilmediği için bu saldırıyı gerçekleştiremeyecektir.
İyi günler dilerim