Ana içeriğe atla

JAVA DA GÜVENLİK VE KAPSÜLLEME (SET VE GET METOTLARI)



                Java programlama dili yapısı itibarı bakımıyla diğer programlama dillerine nazaran daha güvenlidir.Java’nın güvenli olmasını sağlayan en büyük etken kendinden önce geliştirilen dillerin zaafları göz önünde bulundurarak bu zaafları hesaplayıp ve bu doğrultuda geliştirilmiş olmasıdır. Bir önce ki makalemiz olan “C Programla dili ile Ram Bellekte Kısa Bir Seyahat” adlı makalemizde diziden taşan bir döngüden bahsetmiştik ve hatta aynı örneği Java da denediğimizde bize aşağıda ki hatayı vermişti.
Exception in thread "main" java.lang.NullPointerException
at tr.Run.main(Run.java:11)
 Java C ve C++’ın yıkıcı özelliklerini kapatmış, güçlü ve yapıcı özelliklerini alarak geliştirilmiştir. Bu yüzden Java yapısı itibari ile de güvenli bir programlama dili olarak kendini göstermektedir. Bunun dışında Java da çeşitli şifreleme yöntemleri ve değişkenleri saklama gibi bazı güvenlikle ilgili metotlar kullanılmaktadır. Bunlardan en bilenini ise kapsüllemedir.
Kapsülleme Nedir?
                Kapsülleme Java da belirlenen private(class’a özel) değişkenleri bazı metotlar arıcılığı ile direkt çağırılarak kullanmasını engelleyen bir metottur. Yani dolaylı olarak değişkenlere erişim sağlamaktadır. Bu metodun ana kullanılma sebebi ise class’ların içerisinde kullanılan değişkenlerin diğer class’ların direkt erişimine izin vermeyip olası bir güvenlik sorununa yol açmasını engellemektir. Bilindiği gibi private türünde ki değişkenler sadece bulunduğu class içerisinde kullanılabilir. Olası güvenlik zaaflarından kastımız; Deşifre edilen değişkenlerin ram bellekte bir adresi tutulur, adresi tespit edilen değişkene de her türlü müdahale söz konusu olabilir.
Bir çizimle anlatacak olursak kapsüllemeyi durum aşağıda ki örnekten ibarettir.
Resim1

                Durumu açıklayacak olursak;
Başbakanın bir değişken olduğunu düşünelim, devletin önemli sırlarına vakıf ama aynı zaman da halkla da iletişimde olması gerek, Halkla direkt iletişim kurmaya çalışırsa başbakan, halkın içerisine sızmış kötü niyetli kişilerle de karşı karşıya gelmesi mümkün olabilir. Bu durum da milletin bekası için kurulmuş devletin, sırlarının gün yüzüne çıkma ihtimalini ortaya koyar. Yani milletimizin zor durumlarda kalmasına neden olabilir. Bu yüzden hem devletin sırlarını korumak hem de başbakanın halkla iletişimi sağlamak için başbakanlık kendine özgü bir kapsülleme metodu geliştirmiştir. İletişimin başladığı ilk nokta olan E-mail halktan atılan mesajdır, bu mesaj ilk olarak Şikâyet sorumlularına gelir süzgeçlerle süzer ve bir üst kat olan danışman yardımcısına iletilir, bu olayı Java da JFormattedTextField olarak düşünebiliriz JFormattedTextField sadece sayıları aldırmamızı sağlar, bir nevi yukarıda bahsettiğimiz Şikâyet sorumlularının görevini üstlenir ve bir süzgece tabi tutar, Sonra ise Şikâyet Sorumluları durumu bir üst katman olan Danışmana yardımcısına iletir. Oradan ise Danışmana Danışmadan Korumaya, Korumadan ise Başbakana gönderilir. Başbakan ise kendine gelen bilgileri alt kollara ayrılan devletin kademelerine gönderir. Java da durum bu kadar dolaylı ve güvenli olmasa da bu duruma benzer bir uygulama ile uygulanmaktadır. Derslerimizi takip eden arkadaşlar telefon rehberi projesini muhakkak incelemiştir. Dikkat ederseniz arayüz ile veritabanı arasında sürekli Domain class’ını kullandık veritabanından alınan bilgiler domain aracılığı ile arayüze gönderilir, aynı işlem yine tekrar edilip bu sefer arayüzden alınan bilgiler veritabanına gönderilir, kapsülleme sadece veritabanı için kullanılmaz. Kapsülleme güvenlik gerektiren her alanda kullanılabilir.
Şimdi Kapsüllemenin kullanımını anlatan öğrencilere yönelik bir örnek paylaşacağım;


packagetr.org.eclipseturkiye.domain;

public classOgrenciDomain {
               
                private int ogrno;
                private String ogradi;
                private String ogrsoyadi;

                public int getOgrno() {
                               return ogrno;
                }

                public void setOgrno(int ogrno) {
                               this.ogrno = ogrno;
                }

                public String getOgradi() {
                               return ogradi;
                }

                public void setOgradi(String ogradi) {
                               this.ogradi = ogradi;
                }

                public String getOgrsoyadi() {
                               return ogrsoyadi;
                }

                public void setOgrsoyadi(String ogrsoyadi) {
                               this.ogrsoyadi = ogrsoyadi;
                }
}


Kısaca Kapsülleme bu şekilde çağırılmaya hazır hale getirilir.  Şimdi ise Kapsüllemenin arayüz de çağırılmasını anlatacağım;
OgrenciDomain ogrenciDomain = new OgrenciDomain();
                                                               ogrenciDomain.setOgrno(Integer.parseInt(ogrenciNoField.getText()));
ogrenciDomain.setOgradi(ögrenciadıField.getText());
ogrenciDomain.setOgrsoyadi(ogrenciSoyadField.getText());

Dikkat ederseniz arkadaşlar arayüzden veritabanına kayıt yaptırılmak isteniyor ve hiçbir şekilde OgrenciDomain class’ın da ki değişkenler kullanılmıyor ve OgrenciDomain class’ından başka hiç yerde de o değişkenler direkt çağırılamıyor. Kısaca Kapsüllemenin kullanılma amacı budur. Bugün ki dersimiz bu kadar bir sonra ki dersimizde görüşmek dileğiyle.
Not: BU MAKALE EMRAH DEDEOĞLU TARAFINDAN YAZILMIŞTIR İÇERİSİNDE KULLANILAN ÖRNEKLER DENENMİŞTİR VE OLUMLU SONUÇLAR ALINMIŞTIR
               

Yorumlar

Yorum Gönder

Bu blogdaki popüler yayınlar

Levhalar ve Levha Tektoniği

Başlangıçta tüm kıtaların Pangea adında tek bir kıta olduğu, sonradan parçalanıp dağılarak zamanla günümüzdeki yerlerine ulaştığı görüşüne dayanan kıtaların kayması kuramını aslında 1912'de bir meteorolog olan Alman bilim adamı Alfred Wegener ortaya attı.

Gezegenlerin Türkçe Adları

Vâr oluştan bu yana, tüm kişioğlunuñ (insanoğlunuñ) ilgisiñi çekmiştir gökyüzü. Eski kişiler de gökyüzünde erişilmez olan dahası kimi oğur (zaman) tapındıkları bu nesnelere adlar takmışlardır. Öyle ki, “güneş, ay, yıldız” gibi bir takım gök nesneleriniñ adları töz (temel) sözcükler olarak taplanır (kabūl edilir).

REYHANLI AŞİRETİ BOYBEYİ MURSELOĞLU HAYDAR BEY'İN AFFI VE MARAŞ'A İSKANI Ö

Teşkilatçı bir yapıya sahip olan Maraş Valisi Kalender Paşa, bölgesindeki Türkmen Aşiretlerini kendi aralarında örgütleyerek hem aralarındaki anlaşmazlıkları asgariye indiriyor hem de bölgede kendi gücünü ortaya koyuyordu.