Bir uygulama geliştirirken göz önünde bulundurmamız gereken önemli konulardan biri de hiç şüphesiz “güvenlik”tir. Güvenlik konusu deyince nedense aklımıza daha çok network tabanlı bir koruma gelir. Oysa birçok saldırının kaynağı uygulama içerisindeki açıklardan kaynaklanmaktadır. Bir uygulamayı güvenli kılmanın birçok yöntemi bulunmaktadır. Hakların düzenlenmesi, doğru ayarların yapılması, kullanıcıdan gelen bilgilerin doğrulanması, etkili validation işlemlerinin yapılması, gizli-kritik bilgilerin uygulama içerisinde saklanmaması, etkin hata yönetiminin sağlanması, aktif bir test gerçekleştirilmesi, veritabanının koruma altına alınması, .NET platformunda unmanaged kaynaklarının doğru yönetilmesi bu yöntemlerden sadece bir kaçı. Bu yazıda uygulama güvenliğini sağlayan yöntemlerden biri olan ve Windows işletim sisteminin 2000 ve sonraki sürümleri tarafından desteklenen DPAPI (Data Protection Application Programming Interface) arabiriminin .NET cephesi hakkında konuşacağız. Read the rest of this entry »
![]() |
Uzun zamandır aradığım filmi izleme imkanım oldu. ‘Kaplumbağalar da Uçar’, ‘Sarhoş Atlar Zamanı’nın Iran’lı yönetmeni Bahman Ghobadi‘den, ‘mayın tarlalarında büyüyen çocuklar’ üzerine etkileyici bir film. Orjinal adı “Lakposhtha hâm parvaz mikonand” olan bu film, Saddam sonrası Irak’ta çekilen ilk film olma özelliğini taşımaktadır. Filmde, Bush ve Saddam’ın şahsında büyüklerin kurguladığı(çirkinleştirdiği) dünyada Irak halkının şahsında çocukların nasıl bir yaşam savaşı verdikleri anlatılmaktadır. |
MD5(Message Digest algorithm 5), MIT’de profesör olan Ron Rivest tarafından selefi olan MD4 üzerine geliştirilmiş hash algoritmasına dayalı bir fonksiyondur. 128 bit’lik çıktı üreten ve tek yönlü bir şifreleme sistemi olan(ki bu yüzden kırılması mümkün değildir) MD5 fonskiyonu, transfer edilmiş bilgilerin doğru, eksiksiz bir şekilde yerine ulaşıp ulaşmadığının kontrol edilmesinde ve public-key şifrelemesinde kullanılır. Matematiksel bir model üzerine kurulan MD5′in kırılmamazlığı, input olarak aldığı değerin uzunluğuyla orantılır. Özellikle database işlemlerinde kullanıcılara ait bazı özel bilgilerin MD5 ile şifrelenecek tutulması tavsiye edilir. Bu veriler kötü niyetli kişiler tarafından çalınsa bile geri döndürülemediği için ciddi bir tehlike oluşturmaz. Read the rest of this entry »
SQL Server üzerinde farklı kaynaklardan data transferi, toplu aktarımlar ve yerel işlemler için çoğu zaman Data Transformation Services (DTS) denilen Veri Transfer Servisini kullanırız. Hatta bu servis aracılığıyla hazırladığımız paketleri SQL Server Agent yönetiminde Job işlemlerine alarak belli peryotlarda çalışmasını sağlarız. Özellikle kurumsal uygulamalarda dağıtık kaynaklardan belli anlarda verileri çekmek ve üzerinde işlem yaparak yerel veritabanlarına kaydetmek için DTS’ler vazgeçilmez bir alışkanlık haline gelir. MSDB veritabanında tutulan bu paketler, sunduğu zengin connection provider ve tasklarla ciddi bir kolaylık sağlar. Bu bölümde DTS paketleri içindeki genel değişken tanımlamanın nasıl yapılacağını ve dışardan DTS’lerin nasıl parametrik haline getirileceğini göreceğiz. Read the rest of this entry »
Bir html sayfası hakkında bilgi içeren, özetini sunan, hangi temel sözcükler üzerinde durduğunu bildiren, sayfanın ne zaman ve kimin tarafından hazırlandığını gösteren etiketlere meta tag denilir. Bir sayfaya ait üst veriler olarak tanımlanan meta tag etiketleri, description, keywords, author, classification, copyright, robots gibi değerlerden oluşur. Aşağıda, bu sayfanın örnek meta tagları bulunmaktadır;
Meta tagları ziyaretçiler için değil daha çok arama motorlarının o sayfayı doğru ve kolayca analiz etmesi için düzenleriz. SEO(Search engine optimization - Arama motoru optimizasyonu) uygulamalarında en önemli işlemlerinden biri de sitedeki sayfaların meta taglarının güncellenmesidir. Read the rest of this entry »
Özellikle desktop uygulamalarda kullanıcı veya uygulama bazlı bazı ayarları korumak isteriz. Örneğin kullanıcının bir formu en son hangi modda, hangi büyüklükte veya renk ayarlarında kapattığı bilgilerini saklayıp kullanıcının programı bir sonraki açışında bu ayarları yüklememiz her zaman ihtiyaç duyduğumuz bir durumdur. Framework 2.0, bu amaçla System.Configuration.ApplicationSettingsBase sınıfı ve en önemlisi bu işlemleri yapmamız için settings designer ekranı sunar. Read the rest of this entry »
“Idle” kavramı, bir uygulamanın tüm işlerini(process) bitirip atıl moda geçmesini temsil eder. Aynı kavram, işletim sistemleri için de kullanılarak işletim sisteminin tüm işlemlerini bitirip bekleme moduna geçmesi anlamına gelir. Birçoğumuzun kullandığı GTalk programında uzun süren bir hareketsizlik olduğu zaman kullanıcı idle durumuna geçirilir. Programımızın atıl durumdayken bazı özel işler yapmasını sağlamak için Idle olayı kullanılır. Programın atıl durumda olması demek, üzerinde herhangi bir klavye, mouse hareketi olmadığı için arka tarafta da kuyrukta herhangi bir processin işlenmiyor veya beklenmiyor olmasıdır. Kısacası programın tamamen, durağan moda geçmesidir. Windows uygulamaları, ne zaman Idle moduna geçtiklerini bilecek yeteneğe sahiptir. Özellikle gelişmiş programlama dillerinde uygulamanın Idle modunu yakalamak için belli componentler sunulur. Bu amaçla VB.NET, C# tarafında Windows formunu temsil eden Application nesnesinin Idle eventi mevcuttur. Uygulama tüm processlerini bitirip hareketsiz duruma geçtiği anda bu event tetiklenir. Bu event, herhangi bir kontrol tarafından değil doğrudan Windows tarafından tetiklenir. Read the rest of this entry »
Nükleer enerji, temelinde küçük bir kütlenin büyük bir enerjiye denk geldiği kuramının olduğu, atomun çekirdeğinden elde edilen bir enerji türüdür. Atom kütlenin enerjiye dönüşümünü ifade eden ve atom bombasının temelini oluşturan, Albert Einstein’a ait olan E = mc2 (E:Enerji, m:kütle, c:Işığın hız sabiti) formülü ile ilişkili olup 1896 yılında Fransız fizikçi Henri Becquerel tarafından kazara (uranyum maddesinin fotoğraf plakaları ile yanyana durması ve karanlıkta yayılan X-Ray ışınlarının farkedilmesi ile) keşfedilmiştir. Bu yazıda nükleer enerjinin teknik boyutuyla ilgilenmeyeceğiz tabiki, bugünlerde Türkiye’de yeniden gündeme gelmesiyle birlikte bu enerjinin stratejik ve beşeri boyutunu konuşacağız. Gerçekten, nükleer enerji, son 20 yıldır Türkiye’de bir ihtiyaçtan dolayı mı yoksa çevre gelişmelerinden dolayı mı gündeme geliyor. Read the rest of this entry »
Nesne tabanlı programlamayı destekleyen dillerin temel karakterinden biri de inheritance(kalıtım) olayı destekliyor olmasıdır. Fakat multiple inheritance olarak tanımlanan çoklu kalıtım, C++ tarafından destekleniyorken Java, .NET tarafından desteklenememektedir. CLR tabanlı diller, çoklu kalıtım işlemini interface yapılarıyla gerçekleştirir. Böylece bir sınıfın birden fazla arabirimi uygulamasını sağlamış oluruz. Bu uygulama işlemi implicit(gizli, bilinçsiz) ve explicit(açık, bilinçli) olarak gerçekleşir. Implicit yöntemi, klasik bir şekilde bir veya daha fazla arabirimin, sınıfa uygulanması ve arabirim üyelerinin sadece isimleriyle kullanılmasıdır. Fakat özellikle aynı isimde üye içeren birden fazla arabirimin uygulanması durumunda sıkıntı yaşanır. Bunu aşmak için arabirim üyeleri explicit yöntemiyle kullanılır.VB.NET tarafından otomatik olarak explicit yöntemi kullanılır. Read the rest of this entry »
Birçoğumuz için sadece bir veri türü olmakla sınırlı “string” tipini için özel bir başlık altında işlemek ilginç gelmiş olabilir. Bu başlığın amacı okuyucuda bir merak uyandırmak yerine programlarımızda en çok kullandığımız “string” veri türünün diğer veri türlerinden farklı bir konuma sahip olduğunu anlatmaktır. Özellikle string tabanlı ekleme, kesme, değişim, öteleme gibi işlemlerde string veri türünün karakterini bilmekte fayda vardır.
Bilindiği gibi .NET platformunda iki tür veri tipi kullanılabilir; değer veri türleri(value data type) ve referans veri türleri(reference data type). Bu iki veri türünü birbirinden ayıran özellik, değer türlerin sabit uzunluklu olduğu ve memory’nin stack alanı üzerinde depolanmaları, referans türlerinin de genellikle değişken büyüklüğe sahip olmaları ve kendilerinin memory’nin heap alanı, referanslarının ise stack üzerinde depolanmalarıdır. int, datetime, decimal gibi tipler, değer türü, class, array gibi nesne tabanlı tipler de referans türü olarak örneklendirilebilir. Bir çok yazılımcı tarafından string veri tipi de değer türüymüş gibi algılanmaktadır. Read the rest of this entry »

Recent Comments