Güvenlik
Bu sayfa web güvenliği ve codeIgniter güvenliği konusunu içermektedir.
URI Güvenliği
CodeIgniter bozuk verilerin en aza indirgenebilmesi için URI yazımında bazı özel karakterin kullanımını yasaklamıştır, URI yanlızca aşşağıdaki karakterleri içerebilir:
- Alpha-numeric metin
- Yaklaşık işareti: ~
- Nokta: .
- İki nokta üst üste: :
- Alt çizgi: _
- Tire: -
GET, POST, ve COOKIE verisi
Codeigniter'in URI yazımından doğan farklılıktan dolayı GET verisi kullanılamaz. (Eğer Get verilerine ihtiyaç duyuyorsanız config dosyasınan bunu ayarlayabilirsiniz). Global GET array'i sistem önyüklemesinde girdi sınıfı tarafından silinir (unset).
Register_globals
Sistem ön yüklemesi sırasında $_POST ve $_COOKIE değerleri haricindeki bütün global değerler bellekten silinir (unset) Değerlerin bellekten silinmesi register_globals=off tanımlaması ile aynı etkiyi gösterir.
magic_quotes_runtime
magic_quotes_runtime tanımlaması sistem önyüklemesi sırasında kapatıldığı için veritabanından gelen kayıtlar içerisindeki slash karakterini ayrıca temizlemenize gerek yoktur.
En iyi uygulama yöntemi
Dışardan gelen her veriyi (POST, COOKIE, URI Verisi veya XML-RPC , SERVER gibi) işlemeden önce aşşağıdaki 3. adımı uygulamaya özen gösterin:
- Veri doğruluğundan emin olun.
- Verinin istediğiniz tipte, uzunlukta veya büyüklükte olduğundan emin olun. (Bu adım bazen 1. adımın değişmesine neden olabilir).
- Veritabanına yazmadan önce verinin özek karakterler veya kodlar içermediğinden emin olun (Sql injection, XSS gibi).
CodeIgniter güvenlik adımların uygulanmasına yardım etmek için araçlar sunar :
XSS Temizleme
CodeIgniter XSS filtrsi ile birlikte dağıtılır. Bu filtre çok kullanılan zararlı kod yerleştirme tekniğine karşı, hijack ve diğer zararlı kodlara karşı kontroller yapar. XSS filtresi hakkında detaylı açıklamaya buradan erişin.
Veri doğrulama
CodeIgniter verilerinizi doğrulamada, filtrlemede ve uygun hale getirmenizde yardımcı olacak veri doğrulama araçlarıyla birlikte gelir.
Veritabanına eklemeden önce bütün verilerin kontrolü ve filtrelenmesi
Asla dış kaynaklı verileri filtrlemeden veritabanına eklemeyin. Bu konu hakkında daha fazla bilgiye buradan ulaşabilirsiniz.