Ajax.php sayfasına dışardan girişi engellemek
Php ile ajax kullanıyorum. Üye girişi için ajax.php sayfasına post attırıyorum. Ancak ajax.php sayfasına başka bir sayfadan da erişilebiliyor. Bunu nasıl engelleyebilirim. Sadece benim sayfamdan post gitmesini istiyorum
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (5)
login sayfası açılırken başta bir random anahtar oluşturun ve sessionda tutun. ajaxta bu keyi karşıya yollayın.
ajax sayfasında anahtar yoksa ya da eşleşme yoksa sayfayı öldürün ya da hata dönderin.
sadece login sayfasında anahtar üreteceğiniz için aşması zor olur.
bunu aşmak için önce login sayfasına gidip gömülü anahtarı alması daha sonra ajax sayfasına istekte bulunması gerekir.
Evet cevabı şimdi buldum. [HATALI]
if (basename($_SERVER["PHP_SELF"]) == basename(FILE)) {
die("Bu sayfaya doğrudan erişim yasak.");
}
[DÜZELTME]
Bu şekilde ajax hiçbir türlü çalışmıyor
Teşekkür ederim. Bu verdiğiniz yöntemler dışardan (başka bir siteden) girişi engelliyor. Ama bir html dosyası oluşturup form'un action'ına www.siteadresi.com/ajax/ajax.php verince sayfa yine çalışıyor. Bunu nasıl engelleyebilirim
En mantıklı çözüm CORS. CORS zaten bu tarz şeyleri önlemek için kullanılır.
PHP dosyasının en başına şu kodu yaz:
header("Access-Control-Allow-Origin: https://seninsiten.com");
Başka biri istek atmaya kalkarsa CORS uyarısı alır.
Daha fazla bilgi için buraya tıkla.