• 11-10-2010, 13:58:05
    #1
    php ile izinsiz girişleri session ile önlüyoruz ama include ile çağırdığımız dosyalar ve bölümler var tarayıcıya bunların yollarını direk yazdığımız zaman dosyayı açıyor acaba bunların içeriğinin iziznsiz girişlere nasıl kapatırız veya yöntemi nedir

    not: üyelik sistemi yapmıyorum zaten o kadar php bilgim yok. ) küçük bir uygulama yapmaya çakışıyorum
  • 11-10-2010, 14:48:11
    #2
    en kolay ve en güvenli yolu

    <?php switch($_GET["sayfa"])
    {
    case 'uye':
    include 'uye.php';
    break;
    case 'album':
    include 'album.php';
    break;
    case 'foto':
    include 'foto.php';
    break;
    default:
    require 'uye.php';
    }
    ?>

    index.php?sayfa=album şeklinde
  • 11-10-2010, 14:57:05
    #3
    https://www.r10.net/php/624193-dosyay...post1060965064

    Şu işinize yarar sanırım.
  • 11-10-2010, 14:57:45
    #4
    Tontonq adlı üyeden alıntı: mesajı görüntüle
    en kolay ve en güvenli yolu

    <?php switch($_GET["sayfa"])
    {
    case 'uye':
    include 'uye.php';
    break;
    case 'album':
    include 'album.php';
    break;
    case 'foto':
    include 'foto.php';
    break;
    default:
    require 'uye.php';
    }
    ?>

    index.php?sayfa=album şeklinde
    biraz açarsanız sevinirim
  • 11-10-2010, 15:08:10
    #5
    define kullanarak engelleyebilirsin

    index.php sayfasının başına define değeri ata

    define("BAK","bak")
    ardından çağrdığın sayfadan kontrol et "BAK" değşikeni tanımlanmış mı

    if(!defined("BAK"))
              {
                    die("bu sayfayı bu şekilde göremezsiniz"); // yada header kullanarak bir yerlere yönlendirebilirsin.
               }
    Edit : Kusura bakmayın ben cevap yazarken @eagle_one vermiş
  • 12-10-2010, 03:24:35
    #6
    ben yanlış anlamışım include ettiğin php leri bi klasör de topla .htaccess oluştur içinede deny from all yaz oldu da bitti
  • 12-10-2010, 07:45:05
    #7
    Tontonq adlı üyeden alıntı: mesajı görüntüle
    en kolay ve en güvenli yolu

    <?php switch($_GET["sayfa"])
    {
    case 'uye':
    include 'uye.php';
    break;
    case 'album':
    include 'album.php';
    break;
    case 'foto':
    include 'foto.php';
    break;
    default:
    require 'uye.php';
    }
    ?>

    index.php?sayfa=album şeklinde
    Hocam bu mantığı kullanırsa arkadaş RFI açığı oluşabilir. Yapılması gerekn en iyi şey php dosyalarını bir klasörde toplaması ve klasör ismini get ile adres satırına göndermeden içerden klasörü çağırmasıdır. Örnek:
    index.php?sayfa=deneme
    if (isset($_GET["sayfa"]) or die("Bu sayfaya girmek için yeterli yetkiniz yok."))
    {
    	
            $sayfa=$_GET["sayfa"]; //deneme.php
    	$dosya="dosya/"; //Bu dosyada php dosyalarını saklıyoruz
    	include($dosya.$sayfa.".php"); //dosya/deneme.php
    	
    }
    Bu sayede get parametrese ile çektiğimiz veriyi sistem klasörde arayacaktır. Eğer bulamazsa hata verecektir. Bu sayede RFI açığını engellemiş oluruz.
  • 12-10-2010, 13:38:04
    #8
    Aslında tam tersi. Sizin yazdığınız kodlar açık oluşturur. Bknz "Null Byte"
    Diğer arkadaşın yaptığı switch case deyiminde herhangi bir açık yoktu.

    norelpy adlı üyeden alıntı: mesajı görüntüle
    Hocam bu mantığı kullanırsa arkadaş RFI açığı oluşabilir. Yapılması gerekn en iyi şey php dosyalarını bir klasörde toplaması ve klasör ismini get ile adres satırına göndermeden içerden klasörü çağırmasıdır. Örnek:
    index.php?sayfa=deneme
    if (isset($_GET["sayfa"]) or die("Bu sayfaya girmek için yeterli yetkiniz yok."))
    {
    	
            $sayfa=$_GET["sayfa"]; //deneme.php
    	$dosya="dosya/"; //Bu dosyada php dosyalarını saklıyoruz
    	include($dosya.$sayfa.".php"); //dosya/deneme.php
    	
    }
    Bu sayede get parametrese ile çektiğimiz veriyi sistem klasörde arayacaktır. Eğer bulamazsa hata verecektir. Bu sayede RFI açığını engellemiş oluruz.
  • 12-10-2010, 13:46:55
    #9
    Kimlik doğrulama veya yönetimden onay bekliyor.
    norelpy adlı üyeden alıntı: mesajı görüntüle
    Hocam bu mantığı kullanırsa arkadaş RFI açığı oluşabilir. Yapılması gerekn en iyi şey php dosyalarını bir klasörde toplaması ve klasör ismini get ile adres satırına göndermeden içerden klasörü çağırmasıdır. Örnek:
    index.php?sayfa=deneme
    if (isset($_GET["sayfa"]) or die("Bu sayfaya girmek için yeterli yetkiniz yok."))
    {
    	
            $sayfa=$_GET["sayfa"]; //deneme.php
    	$dosya="dosya/"; //Bu dosyada php dosyalarını saklıyoruz
    	include($dosya.$sayfa.".php"); //dosya/deneme.php
    	
    }
    Bu sayede get parametrese ile çektiğimiz veriyi sistem klasörde arayacaktır. Eğer bulamazsa hata verecektir. Bu sayede RFI açığını engellemiş oluruz.
    isset konusunu ozeLLikLe sayfa kontroLLerinde 2. 3. bi kontroL oLamadan kuLLanmaniz sagLikLi oLmaz.Cunku isset degiskenin degerinin oLup oLmadigina bakarki;
    Örn;
    nasil
    $asd = 1;
    veya
    $asd = "asder";
    seklinde $asd degiskenine deger atiorsaniz

    $asd = " ";
    $asd = NULL;
    $asd = false/true;

    bunLarda degiskene deger atamak demektir. bu durumda
    link.php?sayfa=bosluk dahi oLsa degiskeninize deger atanmis oLur.
    Bu NedenLe bu tarz kontroLLerde kesin bi karara sartLayin
    if($_GET['sayfa']=="sayfa") vs. vs.