PHP ve Güvenlik

PHP ve GüvenlikPHP’de Ziyaretçiye bir takım yetkiler verirseniz kötü niyetli bir ziyaretçi web sitenizi ele geçirebilir. Düşünün ki iletişim adresinde “Ad-Soyad:” bölümüne herhangi bir ad değil de bir kod girerek web sitenizden bazı bilgileri silebilir veya bazı önemli dosyaları ele geçirebilir. Hack bu şekilde de işleyebilir. Bunun için PHP’de güvenlik için ziyaretçilere HTML etiketleri çalışmayan sadeec text formlar oluşturmalısınız. Ayrıca Ziyaretçi ile iletişim kurarken asla ve asla güvenliğinizden taviz vermeyin.

 

Güvenlik için bir kaç ipucu;

Web sitenize saldırın

Web sitenize saldırın. İnternetten araştırdığınız kullandığınız web sisteminin açıklarını öğrenerek kendi web adresinizde öğrenin. Bir nevi kendi sisteminizi test edin. Ne kadar dayanıklı. Örnek vermek gerekirse WordPress’in güncellemelerini kontrol etmezseniz siteniz çok kolay bir şekilde hacklenebilir. Nasıl mı güncellemeler bazen sistem içi bazen de yeni bir “Exploit” yani bir sistem açığı bulunduktan sonra yapılır. Güvenlik açığı bulunan güncellemeleri kontrol etmediğiniz anda Hacker’lar bu Exploit dediğimiz açıkları internetten bulup web sitenizi ele geçirebilirler.

Veritabanınıza çocuğunuz gibi bakın

Veritabanınıza çocuğunuz gibi bakın. Öyle her bilgiyi veritabanınıza yazmayın.  Bir takım önlemler koyun. İletişim formunu direk @gmail.com veya benzer e-mail servislerine gönderecek şekilde kurun. Eğer sisteminiz ile aynı panele kurulmuş bir iletişim formuna sahipseniz bu veritabanınızın risk altında olduğunu işaret eder.

Uploadlara dikkat etmeniz gerekli

Uploadlara dikkat etmeniz gerekli. Daha doğrusu uploadlarınızın uzantılarına dikkat etmeniz gerekli. Eğer siz örnek veriyorum ali.php dosyasını Browse yani Resim Seç buttonuna tıkladıktan sonra upload ettirebiliyorsanız yandınız demektir. ali.php.jpg şeklinde görünecek ve resim tarayıcıda göründüğü anda php dosyasıda çalıştırılacak. PHP dosyasının içerisinde kodlarla web site hacker’ın eline geçebilir.

SQL İnjection önemli. Nedir bu SQL İnjection?

SQL İnjection önemli. Nedir bu SQL İnjection? SQL İnjection SQL komutlarının .php uzantılı dosyalar içerisinde çalışmamasıdır. Yani diyorum ki hemen yukarıda bahsettiğim ali.php.jpg üzerinden hacker sitemizin veritabanına zarar veremiyor. Çünkü veritabanı komutları php dosyasının içerisinde çalışmıyor. Bugüne dek yapılan saldırılan büyük bir bölümü SQL İnjection saldırılardır. Bu yüzden önemli dedim, dikkat edilmeli.

Cookie’leri ziyaretçiye şifreleyerek gönderin

Cookie’leri ziyaretçiye şifreleyerek gönderin. Cookie’leri şifrelemek için daha önce açtığım konuya tıklayın. Nedenini bir güzel açıklamışım. Link: Cookie’leri şifrelemek

Daha güvenli bir veritabanı için Stored Procedure kullanın

Daha güvenli bir veritabanı için Stored Procedure kullanın. Stored Procedure Veritabanı tarafından çalıştırılan Veritabanınızdaki kayıtlı bilgilerden bağımsız bir nevi sanal veritabanıdır. Bilgisayarlardaki Ram’in bulunma nedenine benzer. Hem performans hem de güvenlik için kullanılmalıdır.

Gelen bilgi rakam mı yoksa yazı mı?

Gelen bilgi rakam mı yoksa yazı mı? Bunu öğrenmeniz için gelen verinin rakam olduğunu kontrol eden bir kontrol yapısına sahip olmalısınız. Bunun için gelen verinin “Göster” butonuna tıklandığında sayfanın içerisine bu kodu geçirmeniz  gerekiyor.

<?php

if  (is_int($_GET[“makalenumarasi”]))

{//Girilen veri sadece rakamdan oluşuyorsa veritabanına gönder kodları burada oluşturlacak}

else

{echo “Hata. Girdiğiniz değer(ler) rakamdan oluşmuyor.”;}