BBC’de yayımlanan bir habere göre en kötü programlama hatalarından 25 tanesi ilan edilmiş. Bu liste US National Agency yardımı ile oluşturulmuş ve tüm Amerikan BT endüstrisi bu hatalar hakkında hemfikir. Aralarında Microsoft ve Symantec gibi kuruluşların yer aldığı 30’dan fazla firma bu dökümanı yayınlamış. Bakalım nelermiş bu hatalar (çeviriden kaynaklanan hatalar için şimdiden özür dilerim).
1- CWE-20: Kullanıcı girdilerinin yanlış doğrulanması
2- CWE-116: Çıktıların doğru şifrelenmemesi yada değiştirilmemesi
3- CWE-89: SQL dilinin yapısının bilinmemesi
4- CWE-79: HTML kodlarının sayfa akışı içinde doğru kullanılamaması
5- CWE-78: İşletim sisteminin komut yapısının anlaşılamaması
6- CWE-319: Hassas verinin normal text olarak taşınması
7- CWE-352: Siteler arası isteklerde session çalınması (corss-site forgery)
8- CWE-362: Race Condition (ne olduğunu anlamadım)
9- CWE-209: Hata mesajlarında alt yapının ele verilmesi
10- CWE-119: Matematik işlemlerinde mevcut hafıza dışına taşılması
11- CWE-642: State verilerinin harici kontrolü
12- CWE-73: Dosya ismi yada dizinlerin harici kontrolü
13- CWE-426: Güvensiz arama yolu
14- CWE-94: Kod üretici sistemlerin yetersiz denetimi
15- CWE-494: Ne olduğu bilnmeyen kodların indirilip kontrolsüz kullanılması
16- CWE-404: Kaynakların zamansız ortadan kaldırılması veya serbest bırakılması
17- CWE-665: Gereksinimlerin yetersiz karşılanması
18- CWE-682: Hatalı hesaplamalar
19- CWE-285: Erişim kontrollerinin ve kullanıcı haklarının yetersiz kontrolü
20- CWE-327: Zaten kırılmış bir şifreleme algoritması kullanmak
21- CWE-259: Kod içinde direk olarak şifre kullanmak
22- CWE-732: Yanlış atanan kullanıcı hakları
23- CWE-330: Aslında random olmayan random veri kullanmak
24- CWE-250: Gereksiz erişim hakları ile çalışan kod
25: CWE-602: Sunucu tarafında kontrol edilmesi gereken güvenlik unsurlarının istemci tarafında kontrolü
Ben sanırım bu hataların pek çoğunu yaptım zamanında. Tabii zaman geçtikçe ve deneyim arttıkça azalıyor. Kimi zaman farkedilmeyen bu hatalar günü gelidiğinde firmaya hem para hemde prestij kaybettirebilir.
Siz hangileri yaptınız? Yada listeye eklemek istedikleriniz var mı?