php ajax post güvenliği

yumuklusucurta (89) 6 yıl önce sordu

Merhabalar yardım istediğim konu şu şekilde.Ben mesela begen.php ye bir veri göndermek istiyorum ve bu veriyi jquery ve ajax kullanarak gönderiyorum.Aşağıda örnek post gönderme kodunu yazıyorum.

$(document).ready(function(){
  $(".prgncl").click(function(){
    var begeniid = $("[name=begeniid]").val();
    var deger = "&begeniid="+begeniid;      
        $.ajax({
        type: "POST",
        url: "begen.php",
        data: deger,
        success: function(asd){
        swal(asd)
        }                        
      });
    });
  });

şimdi ben bunu bu şekilde yolladım diyelim.sonra begen.php de veriyi şu şekilde alıp veritabanı işlemi yaptık diyelim.

$cevapid = $_POST["begeniid"];

$puanarttir = $db->prepare("update begen set begeni_puan=begeni_puan+1 where uye_id='$cevapid'");
$puanguncelle = $puanarttir->execute(array( ));

Bu şekilde bir sistem yaptık diyelim.Bu dışarıdan müdahale edilmeye gayet açık bir sistem oldu.Mesela örneğin begen.php ye başka bir siteden de js ile veri gelebilir ve bu veri siteye girmesini istemediğimiz bir veri olabilir.Benim istediğim sadece site içinden gelmiş ajax postlarını kabul etsin diğerlerini kabul etmesin dışarıdan müdahale etme olayı olmasın.Bunun için neler yapılabilir ? mesela begeniid değişkenini ajax yerine sayfa yenilemeden başka nasıl bir şekilde yollayabiliriz?

Toplam 1 cevap


alattin (17125) 6 yıl önce cevapladı

begen.php'de kimlik doğrulaması yapmıyor musun? Bunu yapmak zorundasın, bunu yaptığında zaten sorun kendiliğinden kaybolur. Yani gerçekten o kullanıcı beğen butonunu tıklamış mı bunu kontrol etmen gerekir.

begen.php dosyanı sadece autorize olmuş kullanıcılar tetikleyebilmeli.

Aynı zamanda bilmen gereken bir kaç kavram var: CSRF ve CORS bunları biraz araştırmanda fayda var.

yumuklusucurta 6 yıl önce

Kimlik doğrulaması dediğiniz şey nedir ?