Arkadaşlar merhaba,
uzun süredir araştırıyorum ancak sanırım doğru kelimeleri bulamadığımdan doğru sonuca ulaşamıyorum.
Form verilerini işleyen veya querstring verisine göre veritabanından bilgi silen bir php dosyasına sadece o formdan veya sadece kendisine link verilen site içi sayfadan gelindiğinde sayfanın açılmasını ve direk url yazıldığında sayfanın açılmamasını istiyorum.
internette http_referrer örnekleri var ama aynı zamanda güvenilir olmadığıda yazılmış.
Bu konuda yardımcı olacak veya bunu en güvenli şekilde nasıl yapabileceğime dair fikri olan varsa çok sevinirim. şimdiden teşekkürler.
sayfanın direk urlden açılmamasını sağlamak
7
●580
- 30-03-2010, 22:28:08Şimdi hocam sitenizde bir dosya include edilmiş ve siz bunun direk açılmamasını sadece site içinde açılmasını istiyorsunuz doğru anlamış mıyım?
- 30-03-2010, 22:52:17Öncelikle ilginiz için teşekkürler.ilyasbat adlı üyeden alıntı: mesajı görüntüle
Sanırım sizin anladığınız şey; wordpress içinde comments.php dosyası var o direk urlden açılmıyor ancak sadece include edildiği sayfada çalışıyor.
oradaki şu şekilde
if ('comments.php' == basename($_SERVER['SCRIPT_FILENAME']))
die ('Please do not load this page directly. Thanks!');
Benim öğrenmek istediğim ise mesela bir sitemiz var ve kullanıcılar sisteme kendi girdiği konuları silebiliyor, bunuda konunun yanındaki sil linkine tıklayarak yapıyor. bu linkte yazının veritabanındaki id si mevcut ( sil.php?id=5 gibi ) sil.php sayfasında veritabanından bu id nin işaret ettiği satırı siliyor.
Kötü niyetli birisi çıkıpta buradaki linki kopyalayıp sonra sadece id numarasını değiştirerek diğer bilgileri de silmeye kalkarsa diye sadece o linkten gelindiğinde dosya çalışsın ancak farklı bir şekilde girildiğinde o dosya çalışmasın istiyorum. Eminim bir yerde yanlışım var ancak phpde güvenlik konusunda henüz yeniyim. Yaklaşımım yanlış veya farklı şekilde bunun üstesinden geliniyor olabilir
yorumlarınızı bekliyorum - 30-03-2010, 23:23:25Kimlik doğrulama veya yönetimden onay bekliyor.Arkadaşım o silme işleminin yapıldığı dosyada kontrol yaparsın, silinecek id, o üyeye aitse silersin yoksa hata verirsin.
<?php $id = intval($_GET['id']); $sorgu = 'select ekleyen_uye_id from tablon where id='.$id; //sql sorgusunu yap, gelensonuca bak: if($_SESSION['uye_id'] == $sorgu['ekleyen_uye_id']){ //silme işlemi }else{ echo 'Yetkisiz Erişim'; exit(); } ?> - 30-03-2010, 23:34:04İlginize teşekkür ederim.metadige adlı üyeden alıntı: mesajı görüntüle
Eğer kişi sisteme üye ise ve kontrol true olarak dönüyorsa
ve üyemiz bu silme işlemini gerçekleştirmek isterse.
üyelerin hepsinin iyi niyetli olduğunu düşünemeyiz.
haksız mıyım? - 30-03-2010, 23:45:30Kimlik doğrulama veya yönetimden onay bekliyor.cemadam adlı üyeden alıntı: mesajı görüntüle
<?php $uyeid = (int) $_GET['id']; echo ($_SESSION['uye_id'] == $uyeid) ? uye_sil($uyeid) : 'Başkasını silemezsiniz!'; function uye_sil($uyeid) { mysql_query(" DELETE FROM uyeler WHERE uye_id = $uyeid"); } ?>... - 30-03-2010, 23:50:16Tamam düzenledim hocam.metadige adlı üyeden alıntı: mesajı görüntüle
Yanlış anlamışım en başta.
Yanlış anlamışım en başta.