Codeigniter 3 XSS Açığını Kapatmak

Codeigniter

Selamlar, ilk önce XSS açığından kısa bahsedelim ve yazımıza devam edelim.

XSS açığı nedir? (Cross Site Scripting)

Cross site scripting yani siteler arası komut dosyası çalıştırma, web sitenin koduna veya çıktısına harici bir komut dosyasının yerleştirildiği bir tür kötü amaçlı web saldırısıdır. Cross-Site Scripting (XSS), yazılımcının kullanıcıdan aldığı girdileri gerekli HTML ve JavaScript filtrelerinden geçirmediği takdirde oluşan bir zafiyettir. Girdiler gerekli filtrelerden geçmediği taktirde, eğer kullanıcı aynı zamanda bir saldırgan ise; diğer kullanıcılara veya doğrudan sisteme zarar verebilecek zararlı kodları çalıştırabilir. HTML, CSS ve JavaScript tarayıcı tarafından yorumlanan diller olduğundan dolayı, yazılan zararlı kod doğrudan diğer kullanıcıları da etkileyebiliyor.

Örneğin, bir veri giriş alanımız mevcut ve biz bu veriyi POST veya GET yönetimiyle veri tabanımıza gönderiyoruz. Veri giriş alanımıza alert kodu yazdırıp gönderdiğimiz de, veriyi çektiğimiz sayfada sürekli "1" alerti karşımıza çıkacaktır, bu açık sayesinde kötü niyetli korsanlar sisteminize zarar verebilirler.

XSS açığını Codeigniter 3'de nasıl kapatırız?

Benim Codigniter 3 de bu açığı kapatmak için kullandığım yöntemler şu şekilde;
1-) application > config > config.php dosyasına giriyoruz.

$config['global_xss_filtering'] = FALSE;

FALSE kısmını TRUE yaparak XSS filtreleme'sini açıyoruz

$config['global_xss_filtering'] = TRUE;

Bu yöntem veri giriş alanlarına script kodları girmeyi engelleyecektir ama HTML veya CSS kodlarını engellemeyecektir. Hatta bu yöntem, eğer projenizde editör pluginleri kullanıyorsanız çalışmasına engel olacaktır.  Bu yüzden verilerimizi gönderirken

htmlspecialchars($this->input->post("user_name") );

htmlspecialchars() içerisine alarak göndermemiz daha sağlam olacaktır. Bu sayede veri girişlerinde HTML, CSS, JS kodlarının girişini engellemiş olacağız.
Yakında Codeigniter güvenlik önlemleri hakkında yeni yazılar gelecektir. Tüm yazılımcılara iyi kodlamalar.


Yorumlar (0)

    Bu yazıya henüz bir yorum yapılmamış! İlk yorum yapan sen ol!