• 24-10-2014, 00:36:40
    #1
    siteadi.com/abudikkubidik.html şeklinde giriş yapılsada konuici.php sayfam gözüküyor.



    fonksiyon oluşturdum bütün işlemleri buradan döndürüyorum
    php kodlarım şu şekilde ;
     function goster($isim = 'baslik') {
    $basim = $_GET['got'];
    $sql="select * from konular where baslikurl = '$basim'";
    $sorgu=mysql_query($sql);
    While($yazdir=mysql_fetch_array($sorgu))
    {echo $yazdir[$isim];}
    }

    .htaccess içeriği ;
    ReWriteRule ^(.*).html konuici.php?got=$1 [L,NC]

    şimdi buradaki döngüye if else eklesem içerik varsa göster yoksa yönlendir vs. tarzında bu seferde etiket vs. eklenmeyen konularda yönlenmiş olacak . tıkandım arkadaşlar bana bir alternatif gösterirseniz sevinirim.
  • 24-10-2014, 02:46:13
    #2
    SNCR_1 adlı üyeden alıntı: mesajı görüntüle
    siteadi.com/abudikkubidik.html şeklinde giriş yapılsada konuici.php sayfam gözüküyor.



    fonksiyon oluşturdum bütün işlemleri buradan döndürüyorum
    php kodlarım şu şekilde ;
     function goster($isim = 'baslik') {
    $basim = $_GET['got'];
    $sql="select * from konular where baslikurl = '$basim'";
    $sorgu=mysql_query($sql);
    While($yazdir=mysql_fetch_array($sorgu))
    {echo $yazdir[$isim];}
    }


    .htaccess içeriği ;
    ReWriteRule ^(.*).html konuici.php?got=$1 [L,NC]

    şimdi buradaki döngüye if else eklesem içerik varsa göster yoksa yönlendir vs. tarzında bu seferde etiket vs. eklenmeyen konularda yönlenmiş olacak . tıkandım arkadaşlar bana bir alternatif gösterirseniz sevinirim.

    içerik yoksa header 404 verirsin olur biter.
    eklenmeyen konuların zaten indexlenmemesi lazım
    etiket sayfalarını da aynı sayfa üzerinden gösteriyorsan
    etiket veya içerik yoksa header 404 ver

    mesela

     function goster($isim = 'baslik') {
    $basim = $_GET['got'];
    $sql="select * from konular where baslikurl = '$basim'";
    $sorgu=mysql_query($sql);
    if(!$sorgu)
    {
    header("HTTP/1.0 404 Not Found");
    die();
    }
    While($yazdir=mysql_fetch_array($sorgu))
    {echo $yazdir[$isim];}
    }
  • 24-10-2014, 11:00:35
    #3
    digiklan adlı üyeden alıntı: mesajı görüntüle
    içerik yoksa header 404 verirsin olur biter.
    eklenmeyen konuların zaten indexlenmemesi lazım
    etiket sayfalarını da aynı sayfa üzerinden gösteriyorsan
    etiket veya içerik yoksa header 404 ver

    mesela

     function goster($isim = 'baslik') {
    $basim = $_GET['got'];
    $sql="select * from konular where baslikurl = '$basim'";
    $sorgu=mysql_query($sql);
    if(!$sorgu)
    {
    header("HTTP/1.0 404 Not Found");
    die();
    }
    While($yazdir=mysql_fetch_array($sorgu))
    {echo $yazdir[$isim];}
    }

    işte hocam sorun orda aynı sayfada meta bilgilerimi vs'de bu kodla çektiriyorum verdiğin kod metası olmayan bir konu olunca ondada 404 verir
  • 24-10-2014, 15:31:58
    #4
    O zaman sistemi en baştan yanlış yapmışsın. Düzeltmen lazım.
    O yüzden MVC yapısı kullanıyoruz.
    Tasarım ekrana basılmaya başlanmadan önce, controller sayfa doğru mu değil mi var mı yok mu karar verip gerekirse 404 basıp isteği reddetmeli.
  • 24-10-2014, 22:54:11
    #5
    digiklan adlı üyeden alıntı: mesajı görüntüle
    O zaman sistemi en baştan yanlış yapmışsın. Düzeltmen lazım.
    O yüzden MVC yapısı kullanıyoruz.
    Tasarım ekrana basılmaya başlanmadan önce, controller sayfa doğru mu değil mi var mı yok mu karar verip gerekirse 404 basıp isteği reddetmeli.
    bunu yaparken direk olarak şey düşündüm hocam her bir özellik için yeni bir sorgu yazmayım fonksiyona çevireyim ki hem kod kalabalığından kurtulurum hemde sistemi fazla kasmamış olurum diye düşünmüştüm. site bazında php'de ilk scriptim.
  • 25-10-2014, 03:46:47
    #6
    SNCR_1 adlı üyeden alıntı: mesajı görüntüle
    bunu yaparken direk olarak şey düşündüm hocam her bir özellik için yeni bir sorgu yazmayım fonksiyona çevireyim ki hem kod kalabalığından kurtulurum hemde sistemi fazla kasmamış olurum diye düşünmüştüm. site bazında php'de ilk scriptim.

    İlk scriptin olduğu belli. Güvenlik ve kontrol yok direk inputu sorguya sokmuşsun. Hocam önemli olan az sorgu az kod değildir. Yeterli sorgu yeterli koddur. Senin bu hatanı kullanarak siteni mahvedecek seo saldırıları yapılabilir insanlara yol göstermemek için nasıl olduğunu söylemeyeceğim. echo '<html>' diye sayfa çıktısını göndermeye başlamadan bu sayfa var mı, bu sayfa yönlendirilmiş mi, bu sayfa yoksa 404 hatasının basımı gibi işlemleri yapman lazım.
  • 25-10-2014, 03:56:24
    #7
    digiklan adlı üyeden alıntı: mesajı görüntüle
    İlk scriptin olduğu belli. Güvenlik ve kontrol yok direk inputu sorguya sokmuşsun. Hocam önemli olan az sorgu az kod değildir. Yeterli sorgu yeterli koddur. Senin bu hatanı kullanarak siteni mahvedecek seo saldırıları yapılabilir insanlara yol göstermemek için nasıl olduğunu söylemeyeceğim. echo '<html>' diye sayfa çıktısını göndermeye başlamadan bu sayfa var mı, bu sayfa yönlendirilmiş mi, bu sayfa yoksa 404 hatasının basımı gibi işlemleri yapman lazım.

    sorgulardaki açığı kapatmak için genel olarak bağlantı dosyamda nette bulduğum bir kaynağı kullandım sizce yeterlimidir ?

    $inj = array ('select', 'insert', 'delete', 'update', 'drop table', 'union', 'null', 'SELECT', 'INSERT', 'DELETE', 'UPDATE', 'DROP TABLE', 'UNION', 'NULL','order by','order  by'); 
    for ($i = 0; $i < sizeof ($_GET); ++$i){ for ($j = 0; $j < sizeof ($inj); ++$j){ foreach($_GET as $gets){ if(preg_match ('/' . $inj[$j] . '/', $gets)){ $temp = key ($_GET); $_GET[$temp] = ''; 
    exit; 
    continue; 
    } 
    } 
    } 
    }
  • 25-10-2014, 04:37:00
    #8
    SNCR_1 adlı üyeden alıntı: mesajı görüntüle
    sorgulardaki açığı kapatmak için genel olarak bağlantı dosyamda nette bulduğum bir kaynağı kullandım sizce yeterlimidir ?

    $inj = array ('select', 'insert', 'delete', 'update', 'drop table', 'union', 'null', 'SELECT', 'INSERT', 'DELETE', 'UPDATE', 'DROP TABLE', 'UNION', 'NULL','order by','order  by'); 
    for ($i = 0; $i < sizeof ($_GET); ++$i){ for ($j = 0; $j < sizeof ($inj); ++$j){ foreach($_GET as $gets){ if(preg_match ('/' . $inj[$j] . '/', $gets)){ $temp = key ($_GET); $_GET[$temp] = ''; 
    exit; 
    continue; 
    } 
    } 
    } 
    }
    Hayır yeterli değil, çok saçma bir fonksiyon.
    Kim yazdıysa hiç php bilmiyormuş.
    $_GET içine
    ".base64_decode("...base64 ile encode edilmiş sql sorgusu...")."
    yazarak doğrudan sızılabilir.

    Php öğrenmeye yeni başladıysanız doğru kaynaklardan öğrenmeniz lazım.
    PHP'yi github gibi yerlerden öğrenmelisiniz hiç bir şey bilmeden öğrendiği azıcı php ile makale yazmaya çalışan phpcilerin bloglarından değil.
    Güvenlik için aşağıdaki projelere göz atabilirsiniz.
    https://github.com/search?utf8=✓&q=php+security