Editörleri kullanmamızın en büyük nedeni html kodlamalarla uğraşmamızı engellemesi ve bileşenler sayesinde dosya işlemleri gibi işlemleri kolaylıkla yapabilmemizdir. Güvenlik sorunları da dosya işlemlerini gerçekleştirme aşamasında ortaya çıkmaktadır. Örnek verecek olursak kendi websitemde kullandığım ve birçok projede kullanılan FCK editörün dosya işlemlerini yapan bölüm. Bu editörün dosya işlemlerini gerçekleştiren bölümü (kontrol edilmediyse) herkese açık. Bu bölüme ulaşan herkes editörü kullandığımız servera istediği her türlü dosyayı yükleyebilecektir. Bunun için editör kullanırken çok dikkatli olmalıyız.
Editörleri seçerken tercih edilen noktalardan en önemlisi dosya işlemlerini yapabilmesidir. Ancak bu işlem editörü kullanacağımız proje için tehlikeli arz etmekte. Eğer dışarıdan dosya işlemlerini yapan sayfalara erişim varsa bu bölüme erişen herkes sunucumuza istediği her türlü dosyayı (resim, script, virüs, vb.) yükleyebilecektir. Bu durumda bant genişliği, virüs saldırıları, sunucu yavaşlaması, hack gibi sorunlar olacaktır. Örnek olarak kullandığım editör olan FCK editörün dosyaları içinde yer alan ve upload işlemini gerçekleştiren bölüme herkes erişebilmekte. Buraya erişmek ise projemizi büyük bir tehlikeyle karşı karşıya bırakmakta. Örnek verecek olursak FCK editörde "..../filemanager/browser/default/frmupload.html" sayfası ile upload işlemi yapılmakta. Editör yolunu tam bilen biri bu adrese girdiğinde açılan bölümden istediği dosyayı yükleyebilmektedir. Bunun dışında dosya listesini veren sayfaya ("..../filemanager/browser/default/frmresourceslist.html") girildiğinde de tüm dosyalar görüntülenecek ve bu dosyalara dışarıdan erişim müsait olacaktır.
Güvenlik Önlemleri ve Yapılacaklar Peki bu güvenlik sorununu engellemek için yapabileceklerimize bakalım. Öncelikle ilk yapabileceğimiz iş editör seçim işi. Eğer dosya işlemlerine ihtiyaç duymuyorsak bu işlemleri yapmayan editörleri tercih etmeliyiz. Ancak dosya işlemlerine genellikle ihtiyaç duyulduğu için bu adımı atlayabiliriz. İkinci yöntem olarak (kullandığım yöntem) editör dosyalarına direk erişimi kısıtlamaktır. Bu yöntem ile erişim kısıtı olan herhangi bir klasör içinde editör dosyalarımızı tutabiliriz. Böylece dışarıdan dosyalara erişmeye çalışanlar sayfalara erişemeyecektir. Klasör kısıtı ise .Net projelerinde üyelik sistemi ile çok rahat bir biçimde yapılabilmektedir. Bu şekilde kendi sitemde kullandığım editör dosyalarını koruma altına aldım. Dışarıdan erişim veya sunucuma dosya yüklemek mümkün değil. Yapabilmek için admin girişi yapılması gerekiyor. Eğer kontrol işlemi ile uğraşmak istemiyorsak editör dosyalarını koyacağımız dizini iyi seçmemiz gerekir. Örneğin klasör ismini kimsenin tahmin edemeyeceği bir terim koyabiliriz. Bu şekilde de kısmen editör dosyalarına erişimi, saldırıları kısıtlayabiliriz.
Proje ve sunucu güvenliğimiz için hazır olarak kullandığımız editör gibi bileşenleri kullanırken çok dikkatli olmalıyız. Aksi halde yukarıda belirtmiş olduğum açıklar ile biraz bilgisi olan herkes projemize zarar verebilir. Hack olmayan ancak yapacakların hack dedikleri olaylar ile karşı karşıya kalabiliriz. Bunların önüne geçmek için tüm tedbirleri almalıyız. Bu yazımı bu açığı farkettiğim dönemde (yaklaşık 6 ay öncesi) yazmak istemiştim. Ancak fırsat bulamamam nedeniyle ve FCK editör güvenliği hakkında bir arkadaşımızın sorusu üzerine bu yazımı hazırladım. Umarım bundan sonra hem FCK kullanacaklar hem de dosya işlemini yapan herhangi bir editör kullanacaklar bu sorunları göz önüne alırlar.
No Comments