Yazılım güvenliği neden tüm programcıların sahip olması gereken bir beceridir?

Bir programcı veya geliştirici olarak güvenli uygulamalar oluşturmanın önemi göz ardı edilemez.

Yazılım güvenliği, yazılımdaki potansiyel güvenlik açıklarını tespit ederek ve bunları korumak için gerekli önlemleri alarak kötü niyetli saldırıların yönetimini ele alır.

Yazılım hiçbir zaman %100 güvenli olamaz çünkü geliştiriciler bir hatayı göz ardı edebilir, mevcut hataları düzeltirken yeni hatalar ekleyebilir veya güncellemeler aracılığıyla yeni güvenlik açıkları ortaya çıkarabilir.

Ancak tüm yazılım geliştiricilerin güvenli yazılım oluşturduklarından emin olmak için kullanabileceği iki ana yöntem vardır. En başından itibaren güvenli kod yazmak ve kodu etkili bir şekilde test etmekle ilgilidir.

Yazılım güvenliği neden tüm programcıların sahip olması gereken bir beceridir?

Yazılım güvenliği son derece önemli bir rol oynar

Güvenli kod nasıl yazılır

Güvenli kod yazmanın tek bir amacı vardır; hata yönetimi. Kullanıcının uygulamaya sağlayabileceği her potansiyel değeri önceden tahmin edebilir ve bu değer için programda bir yanıt oluşturabilirseniz, güvenli kod yazıyorsunuz demektir.

Tüm iyi geliştiriciler, geliştirdikleri uygulamalar hakkında hemen hemen her şeyi bildiklerinden, bu düşündüğünüzden çok daha basittir. Bu nedenle, uygulamanızın bir görevi gerçekleştirmek için ihtiyaç duyduğu her değeri (onaylanmış değerler) bilmeli ve var olabilecek diğer değerlerin onaylanmamış değerler olduğunu anlamalısınız.

Güvenli kod yazın

Diyelim ki kullanıcıdan yalnızca iki tamsayı değeri kabul eden ve bunlar üzerinde toplama işlemi yapan bir program oluşturmak istiyorsunuz. İyi bir geliştirici olarak artık uygulamanız hakkında her şeyi biliyorsunuz. Bu programın kabul edeceği tüm değerleri (tamsayı değerler) biliyorsunuz ve bu programın gerçekleştireceği görevi (toplama işlemi) biliyorsunuz.

Java'da program oluşturma örneği

import java.util.Scanner;
public class Main {
//The main function that executes the program and collects the two values
public static void main(String[] args) {
System.out.println("Please enter your two integer values: ");
int value1;
int value2;
Scanner input = new Scanner(System.in);
value1 = input.nextInt();
value2 = input.nextInt();
addition(value1, value2);
input.close();
}
//the function that collects the two values and displays their sum
private static void addition(int value1, int value2) {
int sum;
sum = value1 + value2;
System.out.println("The sum of the two integer values you entered: "+ sum);
}
}

Yukarıdaki kod, gereksinimlere tam olarak uyan bir uygulama oluşturur. Çalıştırıldığında konsolda aşağıdaki satırı üretecektir:

Please enter your two integer values:

Daha sonra uygulama, kullanıcı konsola iki tamsayı değeri girene kadar duraklatılmış halde kalacaktır (yani ilk değeri girin, Enter tuşuna basın ve tekrarlayın).

Kullanıcı konsola 5 ve 4 değerlerini girerse program aşağıdaki çıktıyı üretir:

The sum of the two integer values you entered: 9

Bu harika. Program tam olarak yapması gerekeni yapıyor. Ancak kötü niyetli bir kullanıcı gelip uygulamanıza “g” gibi tam sayı olmayan bir değer girerse sorun yaşanacaktır. Bunun nedeni uygulamada onaylanmayan değerlere karşı koruma sağlayan bir kod bulunmamasıdır.

Bu noktada uygulamanız çökecek ve bilgisayar korsanlarının bundan sonra ne yapacaklarını tam olarak bilmeleri için uygulamanıza potansiyel bir ağ geçidi oluşturacaktır.

Program güvenliği örneği

import java.util.InputMismatchException;
import java.util.Scanner;
public class Main {
//The main function that executes the program and collects the two values
public static void main(String[] args) {
try {
System.out.println("Please enter your two integer values: ");
int value1;
int value2;
//using the scanner class to read each input from the user,
//and assign it to is respective variable (throws an exception if the values are not integers)
Scanner input = new Scanner(System.in);
value1 = input.nextInt();
value2 = input.nextInt();
//calls the addition function and passes the two values to it
addition(value1, value2);
//closes the input stream after it has come to the end of its use
input.close();
//handle all the errors thrown in the try block
}catch(InputMismatchException e){
System.out.println("Please enter a valid integer value.");
}catch(Exception e) {
System.out.println(e.getMessage());
}
}
//the function that collects the two values and displays their sum
private static void addition(int value1, int value2) {
int sum;
sum = value1 + value2;
System.out.println("The sum of the two integer values you entered: "+ sum);
}
}

Yukarıdaki kod istisna işlemeyi gerçekleştirdiğinden güvenlidir. Bu nedenle, tamsayı olmayan bir değer girerseniz program aşağıdaki kod satırını oluşturacaktır:

Please enter a valid integer value.

İstisna yönetimi nedir?

Yazılım güvenliği neden tüm programcıların sahip olması gereken bir beceridir?

İstisna işleme

Esas itibarıyla istisna işleme, hata işleme kodunu normal işleme kodundan ayırdığınız hata işlemenin modern versiyonudur. Yukarıdaki örnekte, tüm normal işleme kodları (veya potansiyel olarak istisnaya neden olan kodlar) try bloğundadır ve tüm hata işleme kodları ise catch bloğundadır.

Yukarıdaki örneğe daha yakından bakarsanız iki catch bloğunun olduğunu göreceksiniz. İlki bir OutputMismatchException bağımsız değişkeni alır ; bu, tamsayı olmayan bir değer girilirse oluşturulan istisnanın adıdır. İkincisi, Exception argümanını alır ve bu önemlidir çünkü amacı, geliştiricinin test sırasında bulamadığı koddaki istisnaları bulmaktır.

Kodu kontrol edin

Kodu test etmenin ve yeniden test etmenin gücünü asla küçümsememelisiniz. Pek çok geliştirici (ve uygulama kullanıcısı), yazılım kamuya sunulduktan sonra yeni hatalar buluyor.

Kodunuzun kapsamlı bir şekilde test edilmesi, uygulamanızın akla gelebilecek her durumda ne yapacağını bilmenizi sağlar ve bu da onu veri ihlallerinden korumanıza olanak tanır.

Yukarıdaki örneği düşünün. Tamamlandığında uygulamayı yalnızca tamsayı değerlerle test ederseniz ne olur? Aslında tespit edemediğiniz halde tüm olası hataları başarıyla tespit ettiğinizi düşünerek uygulamadan ayrılabilirsiniz.

Gerçek şu ki, tüm olası hataları tespit edemeyebilirsiniz. Bu nedenle hata işleme, kodunuzu test etmeyle birlikte çalışır. Yukarıdaki programın test edilmesi, belirli bir durumda ortaya çıkacak potansiyel bir hatayı ortaya çıkarır.

Ancak test sırasında ortaya çıkmayan başka bir hata mevcutsa yukarıdaki koddaki ikinci catch bloğu bunu halledecektir.

Veritabanı güvenliği

Uygulamanız bir veritabanına bağlanıyorsa, bu veritabanına erişimi engellemenin en iyi yolu uygulamanın tüm yönleriyle güvenli olmasını sağlamaktır. Ancak uygulamanız yalnızca söz konusu veritabanına bir arayüz sağlamak amacıyla tasarlanmışsa ne olur?

İşte bu noktada işler biraz daha ilginçleşiyor. En temel haliyle veritabanları, kullanıcıların veri eklemesine, almasına, güncellemesine ve silmesine olanak tanır. Veritabanı yönetim sistemi, kullanıcıların doğrudan bir veritabanıyla etkileşime girmesine olanak tanıyan bir uygulamadır.

Çoğu veritabanı hassas veriler içerir, bu nedenle bütünlüğü korumak ve bu verilere erişimi sınırlamak için bir erişim kontrolü gereksinimi vardır.

Giriş kontrolu

Erişim kontrolü, veritabanına erişebilecek kişi türlerini belirleyerek ve sahip oldukları erişim türünü kısıtlayarak veritabanının bütünlüğünü korumayı amaçlar. Bu nedenle iyi bir veri tabanı yönetim sistemi, veri tabanına kimin, ne zaman eriştiğini ve ne yaptığını kayıt altına alabilmelidir.

Ayrıca kayıtlı kullanıcıların, etkileşimde bulunmaya yetkili olmadıkları verilere erişmelerini veya bunları düzenlemelerini de engelleyebilir.

Yorum bırak

Windows 10da ekranın sağ köşesindeki telif hakkı isteği bildirimi nasıl kaldırılır

Windows 10da ekranın sağ köşesindeki telif hakkı isteği bildirimi nasıl kaldırılır

Ekranın sağ köşesinde bir Windows 10 etkinleştirme bildirimi görüyor musunuz? Bu makale, Windows 10'da telif hakkı isteği bildirimini nasıl sileceğiniz konusunda size rehberlik edecektir.

Windows 10 build 14393.222nin nasıl kurulacağına ilişkin Adan Zye talimatlar

Windows 10 build 14393.222nin nasıl kurulacağına ilişkin Adan Zye talimatlar

Microsoft yakın zamanda Windows 10 PC kullanıcıları için Derleme 14393.222 adlı en son toplu güncelleştirmeyi yayımladı. Windows 10 için yayımlanan bu güncelleme, esas olarak kullanıcı geri bildirimlerine dayalı olarak hataları düzeltiyor ve işletim sisteminin performans deneyimini geliştiriyor.

Bilgisayar ağınızı Bastion ana bilgisayarıyla yalnızca 3 adımda koruyun

Bilgisayar ağınızı Bastion ana bilgisayarıyla yalnızca 3 adımda koruyun

Yerel ağınızda harici erişime ihtiyaç duyan bilgisayarlarınız var mı? Ağınız için bir kale ana bilgisayarını ağ geçidi denetleyicisi olarak kullanmak iyi bir çözüm olabilir.

Windows 10daki tüm olay günlüklerini hızla temizlemenin 3 yolu

Windows 10daki tüm olay günlüklerini hızla temizlemenin 3 yolu

Bazen eski olay günlüklerinin tamamını bir kerede silmeniz gerekebilir. Bu kılavuzda Quantrimang.com, Windows 10 Olay Görüntüleyicisi'ndeki tüm olay günlüklerini hızlı bir şekilde silmenin 3 yolunu gösterecektir.

Klavyeniz kullanılamıyorsa Windows tuşu nasıl oluşturulur

Klavyeniz kullanılamıyorsa Windows tuşu nasıl oluşturulur

IBM Model M gibi fiziksel bir Windows tuşu içermeyen eski bir klasik klavye kullanmayı tercih ederseniz, sık kullanmadığınız bir anahtarı ödünç alarak daha fazlasını eklemenin kolay bir yöntemi vardır.

Windows 10da şeffaf arka plan modu nasıl oluşturulur

Windows 10da şeffaf arka plan modu nasıl oluşturulur

WindowTop, Windows 10 bilgisayarlarda çalışan tüm uygulama pencerelerini ve programlarını karartma özelliğine sahip bir araçtır.Ya da pencerelerde koyu arka planlı bir arayüz kullanabilirsiniz.

Sahte IP yöntemleri anonim olarak erişmenize yardımcı olur

Sahte IP yöntemleri anonim olarak erişmenize yardımcı olur

Daha önceki birçok makalemizde çevrimiçi ortamda anonim kalmanın son derece önemli olduğundan bahsetmiştik. Özel bilgilerin her yıl sızdırılması, çevrimiçi güvenliği giderek daha gerekli hale getiriyor. Sanal IP adreslerini kullanmamızın nedeni de budur. Aşağıda sahte IP'ler oluşturma yöntemlerini öğreneceğiz!

Windows 8 görev çubuğunda dil çubuğunu nasıl kapatılır

Windows 8 görev çubuğunda dil çubuğunu nasıl kapatılır

Windows 8'deki dil çubuğu, masaüstü ekranında otomatik olarak görüntülemek için tasarlanmış minyatür bir dil araç çubuğudur. Ancak, birçok kişi bu dil çubuğunu görev çubuğuna gizlemek istiyor.

Linksysten İnternet bağlantı hızını optimize etmeye yönelik ipuçları

Linksysten İnternet bağlantı hızını optimize etmeye yönelik ipuçları

İnternet hızını en üst düzeye çıkarmak, ağ bağlantınızı optimize etmek için çok önemlidir. Bilgisayarları, internete hazır TV'leri, oyun konsollarını vb. kullanarak en iyi eğlence ve iş deneyimini yaşayabilirsiniz.

Linksys yönlendirici için WEP, WPA, WPA2 nasıl kurulur

Linksys yönlendirici için WEP, WPA, WPA2 nasıl kurulur

Kablosuz bağlantı günümüzde bir zorunluluktur ve bu nedenle dahili ağınızın güvenliğini sağlamak için kablosuz güvenlik şarttır.