v2.5.2
Giriş yap

Ajax.php sayfasına dışardan girişi engellemek

deadmonster
629 defa görüntülendi ve 1 kişi tarafından değerlendirildi

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

Cevap yaz
Cevaplar (5)
fatihozpolat
1002 gün önce

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.

deadmonster
1003 gün önce

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

deadmonster
1003 gün önce

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

sefa
1003 gün önce

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.

mektiko
1003 gün önce
$a = $_SERVER['HTTP_REFERER'];
if (strpos($a, 'http://siteadresi.com/') !== false) {
  #kodblogu
}