Merhaba! Ben Aykhan, 1999 doğumlu bir Azerbaycanlıyım ve 2017 yılından bu yana programlamayla ilgileniyorum. Teknolojinin büyülü dünyası beni her zaman etkilemiştir ve bu merakımı kendi blogumda paylaşarak daha geniş bir kitleyle buluşturmayı amaçlıyorum.
Merhaba sevgili New Mix Club hayranları, bugün hem birçok kişinin ilgisini çeken bir konudan bahsedeceğiz hem de bu sorunu çözeceğiz. Bir site kurdunuz ve sitenin yönetici panelinden GET veya POST yaptınızYöntemin gönderdiği istek sonucunda dosyalarınızda değişiklik yapar veya bu dosyaları tek tek silersiniz. Sorun, dosya komutlarının onları kimin verdiğine bakmamasıdır. Örneğin, bir düğmeniz varsa, herhangi bir X dosyasına bir işlem gerçekleştirmek ve bir dosyayı silmek için istek gönderirsiniz. Sorgudaki dosya adı - idsi, vb. gibi bilgiler var. Örneğin, bu düğmenin bağlantısı aşağıdaki gibidir.
https://www.newmix.club/emeliyyatlar-fayli.php?oyun-sil&oyun_id=20
Yukarıdaki örnek bağlantı bir get yöntemidir ve oyunu bu yöntemle sil - Yani, bu sorgu, ne yapılacağını ve hangi oyunun silineceğini belirtmek için o oyunun bir kimliğine sahiptir. Bu bağlantı sadece admin panelinde bulunmaktadır. Aniden, birileri bu bağlantıyı bir şekilde öğrendi. Tek yapmanız gereken herhangi bir tarayıcıyı açmak, bağlantıyı yapıştırmak ve kimlikleri değiştirmek. Sadece bir oyun sitesi varsa, sitenin sabaha kadar yıkıldığını söyleyebiliriz. Amaçları bilinmeyen, hayatta doğru yolu bulamamış, insanların haklarını çiğnemiş, kendilerini küçük düşürmüş, vicdanları sızlatan bu kötü insanlardan korunmanın birçok yolu vardır. bu yollar sana
Her şeyden önce, sorunun mantığını anlayalım. Sitenizin hem kullanıcı hem de yönetici erişimi varsa, iki OTURUM kullanmanız gerekir. Yeni bir site kurmaya başlayan arkadaşlarımız $ _SESSION ['user'] gibi hem kullanıcı hem de admin girişi için sadece bir oturum kullanır , bu da siteye kayıtlı kişilere bu linki kullanma hakkı verir. Bunu nasıl önleyebiliriz?
Sorunun mantığını anlamaya çalışın. İki sitenin Oturum 'bir zemin verdiğini düşünün, $ _SESSION [' user '] ve $ _SESSION [' admin '] verdi . Şimdi geriye, herhangi bir SESSION'dan bir istek alındığında işlemi gerçekleştirecek olan söz konusu operasyon-file.php dosyasına bir fonksiyon yazmak kalıyor. İşlev aşağıdaki gibidir.
<?php
function admin_control() {
if (empty($_SESSION['admin'])) {
header("Location: /?giris-yapilamaz");
exit;
}
}
?>
Yukarıdaki kodda yaptığımız işlemleri tek tek açıklayalım. Önce php üzerinden bir fonksiyon kurduk ve ona admin_control adını verdik. (Bu isim sizin takdirinize bağlı olarak değiştirilebilir). Ardından fonksiyon içinde bir sorgu çalıştırıyoruz. Boşsa (), yönetici oturumu - Yani, yönetici girişi yoksa sorguyu yeniden yönlendirin. I başlık ("Yer: yere yönlendirildi"); hazır işleviyle yapın. Ardından çıkın; diyerek fonksiyonu durduruyoruz. Bu işlevi function.php dosyasında sakladığımıza göre, bu işlevi kullanmak için function.php dosyasını operasyonlar.php dosyasına ekliyoruz. Yani, Operations.php dosyasının başlığında şunları içerir: "function.php";olarak ekliyoruz. Dosyayı eklediğimizde bakmak istediğimiz bir şey var, eğer admin girişi Operations.php yapıyorsa, login isteğinden sonra admin_control(); yazman yeterli. Örneğin böyle bir istek yazalım.
admin_control();
if (isset($_GET['post-sil'])) {
$delete=$database->prepare("DELETE FROM postlar where post_id=:id");
$control=$delete->execute(['id'=>$_GET['post_id']]);
if ($control) {
header("Location: admin/paylasimlar.php?success");}
else { header("Location: admin/paylasimlar.php?error");} }
Yukarıdaki örneği takip ederek sitenizin güvenliğini sağlayabilirsiniz. Ek sorularınızı yorumlarda bize bildirebilirsiniz.