PHP Kodlarında Güvenlik



Merkezi Web Sunucu Donanım Değişikliği Sonrasında Oluşabilecek Problemler:
1) Yeni web sunucusunda bulunan PHP yapılandırılmasında GENEL Değişken kullanımına izin verilmemektedir. Bundan dolayı genel değişken kullananlarda problem yaşanacaktır.
En belirgin değişiklik, yeni bir sayfaya başka bir sayfadan aktarılan değişkenler, doğrudan değişken ismi yazılarak kullanılmamaktadırlar. Bunlar sayfaya aktarılma türlerine bağlı olarak değişken dizilerine alınmaktadırlar. Bundan dolayı değişkenler alınırken,
$_SERVER['SERVER_NAME'], $_POST['degisken_ismi'], $_GET['degisken_ismi']
gibi diziler içerisinden alınmaktadırlar.
register_globals=off durumu ve değişkenlerin kullanımı ile ilgili detaylı bilgiyi PHP web sayfalarından edinebilirsiniz.
2) Yeni web sunucusunda PHP 4.3. ve sonrası serisi çalıştırılacaktır. Buna gore PHP kodlarının en az 4.3. seviyesindeki fonksiyonları kullanabileceğini düşünerek, gerekli fonksiyon değişikliklerini yapmanız gerekmektedir.
3) Yeni sunucuda PHP'nin sistem komutları çalıştırabilen komutları çalıştırılamayacaktır. Sistem komutları çalıştırarak uygulamalar geliştirmişseniz, bunların da gözden geçirilerek düzenlenmesi gerekmektedir.


PHP dilini kullanan web kullanıcılarımızın dikkat etmesi gerekenler:
PHP bir betik dili olduğu için, yazılan her bir kod çalıştırıldığı zaman web sunucu tarafından çözumlenerek sonucu ekrana verilmektedir. Güvenlik açısından PHP ile kod geliştirilirken özellikle dikkat edilmesi gereken durumlar bulunmaktadır.
1) Güvenli Parametreler: PHP kodu içerinde kullanılan her türlü değişkenin içeriğinin ne olması gerektiği belirlidir.
- Değişkenlerin alması gereken değerler kontrol edilmelidir.
- Değişken eğer almaması gereken bir değer alıyorsa, bu durumlarda sayfa görüntülenmemeli, bunun yerine hata sayfaları kullanıcıya gönderilmelidir.
2) Sayfalar Arası Parametre Geçişleri: PHP içerisinde HTML kodları kullanılarak FORM lar oluşturulduğu durumda, parametreler bir sayfadan diğerine aktarılmaya çalışılmaktadır.
- Parametlerin bir sayfadan diğer sayfaya aktarılması için GET metodu yerine POST metodu kullanılmalıdır.
Bu şekilde tarayıcıda bulunan adres satırında, kod içerisinde kullanılan değişken isimlerinin kullanılmaması sağlanacaktır.
- Aktarılan parametrelerin alması gereken değerler kontrol edilmelidir.
- Aktarılan parametreler beklenen bir değerden farklı bir değer almış ise, sayfa görüntülenmemeli, bunun yerine hata sayfaları kullanıcıya gönderilmelidir.
3) Tarayıcıda Bulunan Adres Satırı: Tarayıcıda görünen adres satırı içerisinde, sayfalar arası geçiş kolaylığı sağlamak ve dil değişkenini atamak için kullanılan değişkenler, sayfa içerisinde kullanılan PHP kodunun değişken isimlerini açığa vurmaktadır.
- Bu tarz kontroller için, PHP değişkenleri kullanılmamalı, sayfalar arası geçiş için kullanılabilen ya da sayfada hangı görüntünün olması gerektiğini belirleyen değişkenler yerine, farklı işlevler kullanılarak kontroller oluşturulmalıdır.
- Bu değişkenler kullanılmak zorunda kalınırsa, bunların alabilecekleri değerlerin kontrolleri ve sınırlandırılmaları yapılmalıdır.
4) Genel Değişken Kullanımı :Tüm sayfalar içerisinde kullanılabilecek genel değişkenler kullanılmamalıdır.
5) Değişkenlerin "include" Satırları İçerisinde Kullanımı: "include" ve "require" gibi komutlar yardımı ile çalıştırılabilen farklı PHP dosyalarının isimleri statik olarak bu fonksiyonlara verilmelidir.
Örn:
      include("$degisken/index.php");
şeklinde bir kod çalıştırılması, değişkenin içeriğinin kontrol edilmediği durumlarda güvenlik açığına neden olmaktadır.

Hiç yorum yok:

Yorum Gönder