Ajax API Güvenliği Hk.
Merhabalar;
Sorum özellikle PHP projelerimdeki Ajax requestlerimin güvenliği için ortaya çıkıyor. Ancak her dil için ortak noktaları elbet vardır.
Sizlerin bu tarz Ajax ile GET/POST gibi requestlerinizde, endpoint tarafında vs. mutlaka dikkat ettiğiniz noktalar nelerdir? Gerek front-end tarafında isteği yollarken, gerek hedef backend dosya üzerinde yaptığınız kontroller vs.
Örneğin;
POST isteği var mı? CSRF-TOKEN eşleşiyor mu? Referer kontrolü, Dosyaya link üzerinden direct access'i blocklama, parametreleri sanitize etme vb.vb.
Gerek buraya aklınıza gelen maddeleri, gerekse faydalanabileceğimiz linkleri bırakırsanız; bu konu başlığı aracılığı ile pek çok kişiye faydası dokunur diye düşünüyorum.
saygılar
@r00t kesinlikle dediğin gibi, benim tecrübe edindiğim bu konudaki tek şey gönderdiğin Token'ı nasıl güvenli kıldığın.
PHP nezdinde bakarsan; $_SERVER, $_POST, $_GET veya AJAX isteğine bakmak, ortak kullanılan sunucu'larda güvenli değil.
Ben ne yapıyorum; Kendime özgü bir şifreleme fonksiyonu geliştirdim. Tabiki oturup bir HASH algoritması yazmadım. Gönderdiğim Token içerisine bir Security Key ve göndermek istediğim Data'yı koyuyorum. Back-End tarafında bu GET veya POST isteğini kontrol ediyorum.
GET veya POST yoksa (die), varsa bu kez şifreleme algoritmasını tersine çalıştırıp, içindeki Security Key'i kontrol ediyorum. Key doğruysa Data'yı alıyorum. Bu Data bir ID ise'de ID'yi kontrol ettiriyorum.
Düşünsene eğer ark niyetli kişi Sunucu'ya ulaşamadıysa Browser nezdinde sana birşey yapması mümkün değil. Artık sunucuya ulaşabildiyse zaten, şifreleme fonksiyonunda, Security Key'inde bir önemi kalmadı demektir.