• 25-03-2014, 00:18:36
    #1
    arkadaşlar yeri burası mı bilemiyorum ama nereea yazacağım konusunda kararsız kaldım

    php yada wp br sistemde farketmez sitemize diğer bir siteden verilen linkten tıklayarak ulaşmaktalar gelinen linki idsine kadar biliyoruz bu linkten sitemize girmek isteyenleri girmeden engelleme gibi bir şansımız var mı acaba

    örneğin kişi x bir sitedeki sitenin adresi bunun gibi

    http://site.com/show.php?t=8598
    bir sayfadaki linke tıkladığında bizim siteye geliyor geldiği bu refi yönlendireni bildiğimiz için bu yönlendirmeden geleni direk siteyi açmadan engelleyebilir miyim acaba buradan gelenlere böyle bir sayfa yok yada başka bir hata çıkartabilirmiyim
  • 25-03-2014, 00:59:34
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    @Blade__; evet, çıkartabilirsin. Müsait vakit bulursam uygun betiği de konuya eklerim.
  • 25-03-2014, 01:07:28
    #3
    if($_SERVER["HTTP_REFERER"] == 'http://site.com/show.php?t=8598'){
    echo "Yasak";
    die;
    {

    Bunun çalışması lazım.
  • 27-03-2014, 09:46:57
    #4
    Feisty adlı üyeden alıntı: mesajı görüntüle
    if($_SERVER["HTTP_REFERER"] == 'http://site.com/show.php?t=8598'){
    echo "Yasak";
    die;
    {

    Bunun çalışması lazım.
    Pek sağlıklı olmaz bu sebebi ise bu adresten girildiğinde kod yapısı t=8598 buna bakacaktır ve siz if kullanarak gelen site siteismi.com/show.php?t=8598 ise eğer durdur diyorsun lakin akıllılık edip şöyle birşey yapılabilir.

    siteismi.com/show.php?t=8598&kandirdim=deneme şeklinde gene girer siteye ve sizin belirttiğiniz if sorgusu afallar sonuçta gelen http://site.com/show.php?t=8598 bu değil artık.

    str_str veya preg_match kullanarak gelen linkte'ki t=8598 değeri bulunarak giriş engellenebilir.

    Örn ;

    
    $link		=	 $_SERVER['REQUEST_URI']; // veya $_SERVER['HTTP_REFERER'];
    $find		=	 strstr($link,"t=8598");
    
    if($find){
    	
    	echo "Giremezsin";
    	die();
    	
    }else{
    	
    	// Algoritma her zaman çok önemlidir..
    	
    }
  • 27-03-2014, 10:35:53
    #5
    BR9 adlı üyeden alıntı: mesajı görüntüle
    Pek sağlıklı olmaz bu sebebi ise bu adresten girildiğinde kod yapısı t=8598 buna bakacaktır ve siz if kullanarak gelen site siteismi.com/show.php?t=8598 ise eğer durdur diyorsun lakin akıllılık edip şöyle birşey yapılabilir.

    siteismi.com/show.php?t=8598&kandirdim=deneme şeklinde gene girer siteye ve sizin belirttiğiniz if sorgusu afallar sonuçta gelen http://site.com/show.php?t=8598 bu değil artık.

    str_str veya preg_match kullanarak gelen linkte'ki t=8598 değeri bulunarak giriş engellenebilir.

    Örn ;

    
    $link		=	 $_SERVER['REQUEST_URI']; // veya $_SERVER['HTTP_REFERER'];
    $find		=	 strstr($link,"t=8598");
    
    if($find){
    	
    	echo "Giremezsin";
    	die();
    	
    }else{
    	
    	// Algoritma her zaman çok önemlidir..
    	
    }
    Arkadaşa preg_match ile verecektim ama adresi biliyorum dediği için gerek duymamıştım açıkçası. Böyle daha iyi oldu algoritma.
  • 27-03-2014, 11:39:21
    #6
    Kimlik doğrulama veya yönetimden onay bekliyor.
    $yasakliID = ["123","1589","2589"];
    
    if(preg_match('/(http|https)://(www.)site.com/show.php?t=('.join('|',$yasakliID).')/i',$_SERVER['HTTP_REFERER']))
    exit("wrong url");
    bu şekil kullanman daha saglikli olacaktir, www. ile girilse,https ile girilse dahi engelleyecektir