. Jquery $ post ve PHP - ana web sitesi dışında komut dosyası kullanmak için yeteneği önleyin

2 Cevap php

Ben bir yanıt döndürür veya $. Yazı içinde hedeflenen. Php dosyası içindeki bir eylemi yapacağını jQuery $. Mesajı kullanarak bir PHP komut dosyası kurulum var.

Örn. Benim sayfa, adı yazdığınız bir formu vardır. Form gönderme düğmesi, $. Sonrası çağırdı ve "mywebsite.xyz / klasör / ajaxscript.php" içine girilen ad alanı değerini gönderir vurmak kez

Bir kullanıcı doğrudan "mywebsite.xyz / klasör / ajaxscript.php" ziyaret ve bir şekilde komut verileri POST ise, komut gönderilen POST verilerine dayanarak, bir eylem yapmak / bir yanıt dönecekti.

Sorun diğerleri periyodik bir eylemi "çağrı" veya doğrudan web sitesini kullanarak olmadan benim web sitesinden bir yanıt istemek mümkün istemiyorum değildir. Teorik olarak, şu anda adı web siteme bile ziyaret etmeden verir, ya da sadece "mywebsite.xyz / klasör / ajaxscript.php" ziyaret ederek, web sitesi geçmeden bir eylem diyebiliriz hangi değerleri belirleyebilir

Yani, ben bunun olmasını engellemek için ne gibi önlemler alabilir? Şimdiye kadar benim fikrim bir $ _POST ve bir $ _GET olmasını sağlamak için - yani elle tarayıcıda içine giremez, ama yine komut verileri sonrası olabilir ...

Başka bir tedbir sona eriyor, ve web sitesini yeniden kadar ziyaret X miktar için sadece geçerli bir oturum anahtarı uygulamaktır. ~ Ya da, sadece bir günlük "kod" olduğu değişiklikler ve onlar her mesaja isteği içine günlük "kodu" pass örn. (çalışma komut onların doğrudan erişim tutmak için her gün web sitesinden bu kodu kapmak gerekiyordu. Ben o kodu ajax php script eşleşen kontrol edin.)

Ancak, hatta bu meaures ile, onlar hala çok uzun onlar POST verilerini nasıl bildiği gibi komut erişebilir ve aynı zamanda her gün yeni kodu alırsınız. Ayrıca, kodu gibi gece yarısı siteyi (12:00) ziyaret ederken bir günlük kodu gereksinimi sorunlar yaşatabilir sahip değişecek ve komut dosyası geçersiz kod geçirilen ile, komut aramak için çalışıyor web sitesinde birisi için kıracak hala.

I have attempted using .htaccess however using: order allow,deny deny from all

Meşru erişimi engelleyen, ve web sitesinin IP sanırım güncellemek için bir güçlük olduğu .. erişmek için izin böylece bir istisna eklemek gerekiyor. Bu tek meşru çözüm sanırım rağmen ben gerekecek.

If I need to be more clear please let me know.

2 Cevap

Artı dediğiniz gibi Session değişkeni kullanın ...

MyGGAN teslim formları işleme önce bir çerez (CVAL1) ayarlanan bir değeri kullanın dediği gibi. Bu cookie mevcut ise, teslim (JS Kod Kontrol doğrular).

On the server side: If this cookie value exists and the session variable exist then the HTTP Request came from your website.

Not: komut dosyası (form) başka bir etki altında sunulan ise çerez değeri (CVAL1) ayarlanmasına izin VERMEYİN.

Ekstra Http Başlıkları (: jquery x-istenen-olduğu gibi) mevcut değilse, sunucu tarafı komut HTTP isteklerini izin vermeyin. JQuery sunucuya bir X-* başlığı ile bir istek gönderir.

MyGGAN anlaşılacağı gibi Croos-Site Request Sahtecilik daha okuyun.

I REMOTE_ADDR işe gerçekten emin değilim. Bu son kullanıcıların IP adres olması gerekiyordu değil mi?

Firstly, you could make use of $_SERVER['HTTP_REFERER'], though not always trust-able.

Geçerli sonrası sayfanızdaki geldi sadece bahis bir captcha kullanmak istiyorsunuz.