Improper Exception Handling Açıklığı (CWE-248) | |||||
Bu makalede Improper Exception Handling (CWE-248), yani Yakalanmamış İstisna açıklığı anlatılacatır.
Açıklık Önem Derecesi: Düşük Açıklığın Etkisi: Uygulamanın çökmesi, hassas verilerin ifşası, diğer beklenmedik davranışlar Açıklığın Açıklaması: Uygulamalarda zaman zaman uygulamaların normal akışını bozan istisnalar (exception'lar) meydana gelebilmektedir. Örneğin veritabanı, dosya erişimi gibi bazı işlemlerde istisnalar fırlayabilmektedir. Bu işlemlerde olası istisnalar yakalanacak şekilde kodlama yapılmazsa uygulamada beklenmeyen davranışlar gerçekleşebilir. Örneğin çökme, bilgi ifşası gibi. Bir saldırgan yakalanmamakta olan bir istisnayı tetikleyerek uygulamanın servis dışı kalmasını sağlayabilir veya hata durumuna göre farklı aksiyonlar alabilir. Yakalanmamış İstisna açıklığını somutlaştırmak için şu örnek verilebilir: Java - Güvensiz Hal: public static void loadLib() { // Eğer LIB_NAME mevcut değilse // yakalanmayan bir istisna fır- // layacaktır. System.loadLibrary(LIB_NAME); } Java - Güvenli Hal: // Handle All Possible Exceptions within the Error-Prone Method public static void loadLib() { try { System.loadLibrary(LIB_NAME); } catch (SecurityException se) { // SecurityException Yakalama } catch (UnsatisfiedLinkError sle) { // UnsatisfiedLinkError Yakalama } } Java - Güvenli Hal (2): // Aggregate Potential Exceptions to Calling Code public static void loadLib() throws UnsatisfiedLinkError, SecurityException { System.loadLibrary(LIB_NAME); } Görüldüğü gibi ilk örnekte istisna fırlatabilir bir işlem try-catch ile çevrelenmemiştir. Bu güvensiz kodlamadır. İkinci örnekte istisna fırlatabilir bir işlem try-catch ile çevrelenmiştir. Bu güvenli kodlamadır. Üçüncü örnekte istisna fırlatabilir bir işlem ilgili metodun fırlatılabilir istisnalar listesi tanımı ile hata yönetimi kapsamına alınmıştır. Bu da alternatif bir güvenli kodlamadır. Açıklığın Önlemi: İstisna fırlamasına neden olabilecek herhangi bir metot try-catch blok’ları ile sarmalanmalıdır ve;
|
|||||
![]() |
|||||
|
|||||
Yorumlar |
|||||
Henüz yorum girilmemiştir. | |||||
Yorum Ekle | |||||