if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
echo 'icerik';
include 'db.php';
}else{
echo 'giris yasak';
}Bu şekilde girişi engelleyebiliyorum ancak bu sefer uygulamada bağlanamıyor.
Json.php Direk Erişim kısıtlama
21
●1.441
- 02-06-2016, 11:41:18
- 02-06-2016, 12:07:11Uygulamanızın içine gizli bir anahtar kelime gömün, bunuda get ile gönderilmesini sağlayın. json.php içerisinde GET anahtarı geçersizse DİE döndürün. Sorun çözülür.mersinstyle adlı üyeden alıntı: mesajı görüntüle
- 02-06-2016, 12:20:59Dediğiniz olay çok mantıklı geldi bana ancak malesef bunu yazacak kod bilgim yok, Örnek bir kod yazabilirseniz uyarlayıp deneyeceğim. Örneğin uygulamanın paket adı olan com.uygulamaadi'nı kullanabilirimBig_Turk adlı üyeden alıntı: mesajı görüntüle
- 02-06-2016, 12:33:18json.php dosyanızın en başına ;
if($_GET['anahtar']!='com.uygulamaadi'){ die('izinsiz erişim!'); }şeklinde kod ekleyin. Uygulamanız içerisinden json.phpye bağlanan kodlarada şu şekilde get parametresi ekleyin.
www.siteadresiniz.com/json.php?anahtar=com.uygulamaadi
Artık json.php dosyanıza sizin belirleyeceğiniz anahtar kelime harici gelen tüm istekler durdurulur. - 02-06-2016, 15:20:51Buda çözüm olmuyor çünkü biri uygulamayı indirip içindeki dosyalara baktığında json adresini ve anahtar kelimeyi görecek. Sonuç olarak json adresini zaten kimse bilmiyor sadece biri uygulamayı açarsa görebilecek 'ki uygulamayı açan şifreyide görmüş olacak.Big_Turk adlı üyeden alıntı: mesajı görüntüle
- 02-06-2016, 15:25:16Mantığı geliştirmek tamamen size bağlı durumda. Burada ki kimse size uygulama yapınızı bilmeden nokta atışı yardımda bulunamaz. Uygulamanızda cihaz kimliği ile ilgili bir anahtar üretebilirsiniz, 2 aşamalı kontrol yapabilirsiniz. Cihaz bağlanır bağlanmaz X.php dosyasına bağlanıp json.php dosyasının adresini bu X php dosyasından okuyarak cihaz belleğinde tutabilir. json.php dosyasının adını sürekli değişir ve x.php içerisinden güncelleyebilirsiniz vs vs buradaki sınır sizin düşünceniz ve geliştireceklerinizden ibaret...mersinstyle adlı üyeden alıntı: mesajı görüntüle
- 02-06-2016, 15:36:19Öncelikle verdiğiniz bilgiler için teşekkürler, Her üye'nin bir cihaz id'si DB'de zaten kayıtlı. Bunu kullanmayı denedim ancak Login olmayan kullanıcılarında Json'a erişmesi gerek burada sorun yaşıyoruz.Big_Turk adlı üyeden alıntı: mesajı görüntüle
Bu durumda iki ayrı json dosyası oluşturmam gerekecek sanırım. İlk Json sadece kullanıcının Login olmasına olanak sağlayacak. İkinci Json ise kullanıcı login olduktan sonra diğer verilere erişme olanağı sağlayacak.
Ancak bu durumda'da kullanıcı kayıtlı cihaz üzerinden login olup json erişim izni aldıktan sonra tekrar istediği veriye ulaşabilecek
Sanırım ben fazla detaycı düşünüyorum
En mantıklı gelen şey dediğiniz gibi json adresini sürekli değiştirmek ya da token kullandırtmak.
- 02-06-2016, 18:12:57app store da bulunan (veriyorlar mı bilmiyorum) uygulamayı kurmuş telefon idlerini alın ve veritabanınıza kaydedin. Uygulamanın içinde siteadi.com/json.php?deviceid={buraya_cihaz_idsi_gelecek} şeklinde sayfanıza bağlanmasını sağlayın. Bağlandığı anda önce cihaz idsini veritabanınızda arayın. Varsa kullanıcının ip, browser tarzı bilgilerini kaydedin. Böylece güvenli bağlantı mı sağlıyor yoksa iş bilen birisi ve istediği gibi mi bağlanıyor anlarsınız.
- 02-06-2016, 18:21:30Bunu denedim ve 2 sonuca vardım ;loc adlı üyeden alıntı: mesajı görüntüle
1. Kullanıcı üye olurken cihazın ID'sini DB'de kullanıcı tablosuna kayıt ediyorum zaten. Daha önce kayıt olmuş olan birinin cihaz id'si olduğu için json'a ulaşabiliyor o yönde sıkıntı yok ancak yeni kayıt olmak isteyen veya kayıt olmayan bir kullanıcı app'ye ulaşamıyor çünkü cihaz id'si DB'de kayıtlı değil. Buda bundan sonra uygulamayı indiren kişiler json'a erişemeyecek demek oluyor.
2. İlk sorunu çözmenin bir kaç yolu var ve var sayalım çözdük. Bu durumda kullanıcı önce sisteme bir cihaz ile kayıt olup kendi cihaz id'sini bir yere not alıp tarayıcı üzerinden site.com/json.php?deviceid={benim_cihaz_id} diyerek yine bağlanabilecek. Çünkü artık DB'de o cihaz id'si kayıt edilmiş olacak.
