Merhaba,
Üye olmayan kişilerin sayfayı görme yetkisi vermediğim bir projem var. Fakat sayfaya ulaşabilirlerse veya sayfa altında get ile çalışan url yapısını bilirlerse json dosyasından veri çalmaları muhtemel. Hatta yapanların olduğunu düşünüyorum.
Önlemek için nasıl bir önlem alabilirim?
Teşekkürler, İyi çalışmalar.
PHP GET URL Erişimi kısıtlama
8
●114
- 02-07-2021, 14:24:05
- 02-07-2021, 14:36:26Session kullanıyorsanız aşağıda ki gibi bir yapı işinizi görecektir. json dosyasının başında SESSION kontrolu yapıp login olunmadıysa die() ile isteği sonlandırabilirsiniz.
// sayfa.php if( $_SESSION['oturum'] === true ){ echo 'Sayfa içeriğini Göster ve Json dosyasına get yap (json_get.php)'; }else{ echo 'İçeriği Gizlei Giriş yap, Kayıt ol.'; } //json_get.php if( $_SESSION['oturum'] !== true ){ die(); } // Json içerik oluştur /* . . . . */ // Json içerik oluştur - 02-07-2021, 14:44:01Teşekkür ederim.mikropiks adlı üyeden alıntı: mesajı görüntüle
Session verisi olsa bile bu kısımı görmesini istemiyorum.
Başka değerli görüşünüz var mı? - 02-07-2021, 14:45:11Teşekkür ederim. Bir örnek var mı?CodeDev adlı üyeden alıntı: mesajı görüntüle
- 02-07-2021, 14:48:04Rica ederim, şuanda mobilim biraz sonra kod hazırlayıp size pm atarimactionmax34 adlı üyeden alıntı: mesajı görüntüle
- 02-07-2021, 15:52:14Hocam kabaca 2 fonksiyon oluşturdum. Fonksiyonlardan biri kod üretiyor diğeri de kodu çözümlüyor. Üretilen kod her saniye değişmekte ve sizin belirlediğiniz zaman toleransına göre doğrulama fonksiyonu çalışmakta. Ben kod üretmek için hex2bin ve bin2hex kullandım. Siz daha farklı fonksiyonlar deneyebilirsiniz. Örnekte 5 sn toleranslı kullandım. 5sn sonra kullanılacak sistem içi veya sistem dışı kod çalışmayacaktır.
Site Kökünden gelen gizli anahtar: (Bu anahtar hem ön sayfada hem de json)
$gizli_anahtar = '123456Aa';
Kod Üreten ve Çözen Fonksiyonlar:
function olustur($gizli_anahtar = ''){ return bin2hex($gizli_anahtar . '__' . time()); } function coz($gizli_anahtar, $kod){ $sure_fark = 5; // x süre farkı kadar opsiyon tanı $kod_coz = hex2bin($kod); $kod_bol = explode('__', $kod_coz); if( count($kod_bol) == 2 && $kod_bol[0] == $gizli_anahtar ){ // gizli anahtar eşleşti ise if( $kod_bol[1] + $sure_fark >= time() ){ // süre fark kontrol return true; } } return false; }Örnek Kullanım:
/* Kullanım: Get İsteği Yapan Sayfa: Get isteği yapılacak sayfada kod oluşturulur ve url'den get data olarak gönderilir. Örn: $kod = olustur($gizli_anahtar); // return hex (Örn: 31323334353641615f5f31363235323238303730) Örn Url: site.com/json.php?code=31323334353641615f5f31363235323238303730 Json Oluşturan Sayfa: Gelen code değeri alınır ve çözümlenir. $code = isset($_GET['code']) ? $_GET['code'] : ''; $cozumle = coz($gizli_anahtar, $code); // return true/ false if( !$cozumle ){ // Kodu Çözümle die(); // Çözümleme Hatalı ise yürütmeyi durdur. } */ - 02-07-2021, 15:59:00Çok teşekkür ederim. Benim için güzel bir aydınlanma oldu...mikropiks adlı üyeden alıntı: mesajı görüntüle
- 02-07-2021, 23:00:07A = Uyeler sayfasına erişim izni
B = Ürünler sayfasına erişim izni
C = Üye ayarları sayfasına erişim izni
....
Kullanıcı eğer Üyeler sayfasına erişmesini istemiyorsanız.
Kullanıcının yetki izinlerini bir sütünda tutun ve login olduktan sonra session'a atın.
Daha sonra sayfa içerisine;
// Örnek yetkiler; "ABCDEFGHIJKLM"; if (strpos($_SESSION['Yetkiler'],"A")) { // Örneğin üyeler sayfasına erişmesini istemiyorsanız, A yetkisini kontrol edebilirsiniz. echo "Bu sayfaya erişim izniniz yoktur!"; exit; } else { //Çalışacak kodlar. }