Bugüne kadar çok farklı konu ve teknoloji ile ilgili yaptığı ücretsiz etkinliklerle sektörünün gelişmesine katkıda bulunan CETURK etkinliklerine devam ediyor.

13 Haziran'da Ankara'da gerçekleştirilen "CETURK Java Teknoloji Günü-2 – Ankara" etkinliği büyük bir ilgi ile karşılaştı. Gelen yoğun talep üzerine Bu etkinliğin tekrarı 4 Temmuz'da IBM de gerçekleştiriliyor. Etkinlikte Java Teknolojilerinde uzman konuşmacılar bilgilerini katılımcılarla paylaşacaklar. CETURK bu etkinlik ile beraber son bir yılda Java ile ilgili 7. etkinliğini gerçekleştiriyor olacak.

Bu etkinliği IBM Gold Sponsor olarak, i-con Silver sponsor olarak desteklemektedir.

Etkinliğe katılım her zamanki gibi ücretsiz olacak. Ayrıca her zaman olduğu gibi etkinliğe katılan kişilere çekiliş ile kitap hediye edilecek .Etkinliğe katılamayanlar için video kaydı alınarak CETURK.TV 'de yayınlanacak. Java'ya gönül veren tüm yazılımcıları etkinliğimize bekliyoruz.

Ayrintılı bilgi ve kayıt

 

Ben de bu etkinlikte yer alacağım.Seminerde görüşmek dileğiyle...

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Windows 7 İncelemesi

28 Haz 2009 In: Genel, İncelemelerim

Windows 7'yi geçtiğimiz günlerde test etme fırsatı buldum ve izlenimlerimi sizlerle paylaşacağım.

Öncelikle benim için en önemli etkenlerden biri olan hız konusu gerçekten vistaya oranla daha da artmış durumda ve beklediğimden de hızlı çalışıyor.Hızlı açılması ve arayüz bakımından hoşuma gittiğini söyleyebilirim.Kaynak tüketimi olarak daha az kaynak tüketmesi gerçekten önemli bir avantaj sağlıyor.

Test etme fırsatı bulduğum bilgisayarda 1 gb ram mevcuttu ve ona rağmen açılış hızı beklediğimden daha üst noktalardaydı.

Grafiksel arayüz bakımından oldukça hoş ve göze hitap eden simgeler ve özellikler barındırıyor olması da artı puan almasına sebep oldu.Renk tonlarının daha canlı ve aktif görünmesi de ilgimi çeken noktalardan biri oldu.

Bir XP kullanıcısı olarak Vista'ya pek ısınamamıştım ama Windows 7 gerek hız gerekse barındırdığı yedekleme,güvenlik vs. özelliklerden dolayı tercih edebileceğim bir işletim sistemi olarak beğenimi kazandığını söyleyebilirim.

Kurulum bakımından da gayet basit olması nedeniyle ev kullanıcıları tarafından rahatlıkla kurulabilir.

Ancak negatif olarak gördüğüm noktalardan biri de daha önec Vistada yaşanmış olan sürücü problemlerinin devam ediyor olması biraz can sıkıcı oldu.

Kurulumun ardından ethernet kartı driverı bakımından bir problem yaşadım ancak yeni sürümlerini kurduğumunda o problemi de ortadan kaldırmış oldum.

Windows 7'ye uygun olarak şuan driverlar mevcut değil ancak çoğu Vista driverı uyumluluk sağlıyor.

Negatif olarak gördüğüm bir nokta ise yine bazı programların uyumlu olarak çalışmaması diyebilirim.

Bu problemlerde ileriki günlerde aşılacaktır tabi ancak alışılagelmiş programlarımızı bir süreliğine de olsa kullanamamak biraz can sıkıcı durum yaratıyor.

 

 

Avrupa sürümlerinde Internet Explorer 8 entegre olarak gelmeyeceğini duymuştum.Şuan denediğim sürümünde IE 8 mevcut ve gayet hızlı çalışıyor.

Vista kullanıcılarının Windows 7'ye alışması kolay olacaktır.Arayüz ve Menü tasarımları tanıdık gelecektir.

Genel olarak bakıldığında ben memnun kaldığımı söylebilirim negatif yönlerinin aksine pozitif yönü fazla olmasından dolayı tam sürümü çıktığında tercih edeceğim.


 

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

ASP.NET ile MYSQL ve Dosya İşlemleri

20 Haz 2009 In: ASP.NET

 

 

 

 

 

 

 

 

 

 

Bazı uygulamalarımızda genelde tercih edilen mssql dışındaki veritabanlarınlarıyla da işlem yapmamız gerekebiliyor.

Bu gibi durumlar için bir asp.net projesinde mysql kullanarak veritabanından aldığımız bilgileri bir metin belgesine (.txt) aktarmayı inceleyeceğiz.


Projemize geçmeden önce mysql.dll dosyasını çalışmamıza import etmemiz gerekiyor.Mysql işlemlerini bu dll dosyamız sayesinde gerçekleştireceğiz.

MySql.Data.dll (256,00 kb)

Import işleminin ardından using System.IO; kütüphanesini çalışmamıza ekliyoruz.

Web.Config dosyamızın içine de  appSettings olarak aşağıdaki gibi bir tanımlama gerçekleştiriyoruz.

<appSettings>
        <add key="ConnectionString" value="Database=ok_forum;Data source=212.118.25.29;User id=forum;Password=123456"/>
  </appSettings>

Page_Load içine  SQL sorgumuzu belirtip (Örnek olarak ben bir ipb forum üyeler tablosuna bağlandım) , ardından dataset ile de connectionstringimizi belirtiyoruz.

Bir Datatable oluşturup Datasetten bilgilerimizi tutuyoruz.Ardından bir FileStream oluşturuyoruz.

Bu işlem ile de gelen bilgilerimizi bir metin belgesine (.txt) aktaracağız.StreamWriter ile de verilerimizi log.txt adındaki dosyasının içine eklemesini sağlıyoruz.

Datatable aracılığıyla tuttuğumuz verilerimizi bir küme haline getirip her satırı bir foreach yapısı kullanarak dosyasının içine yazmasını sağlayacağız.

Bizim bu örnekte istediğimiz ibf_members tablosu altındaki kullanıcıların sadece email adreslerini metin belgesine aktarmak olduğu için foreach yapısı altında bulunan row["email"].ToString() ile sadece belirttiğimiz column'a ait verileri çekiyoruz.

Tüm bu işlemleri sonlandırdığımızda bir kod bütünü olarak aşağıdaki yapıyı elde edeceğiz.

// SQL sorgumuzu oluşturuyoruz ve Dataset'e aktarıyoruz.

      int i = 0;
      string cmd = "SELECT * FROM ibf_members ";
      DataSet ds = MySql.Data.MySqlClient.MySqlHelper.ExecuteDataset(System.Configuration.ConfigurationManager.AppSettings["ConnectionString"],cmd);

// Datatable oluşturuyoruz ve Datasetteki verilerimizi depoluyoruz.

     DataTable dt = new DataTable();
      dt = ds.Tables[0];
     

// FileStream nesnesi oluşturuyoruz ve log.txt adındaki dosyayı açıyoruz.StreamWriter ile de  o dosyaya yazıyoruz.



      FileStream fs = new FileStream(Server.MapPath("~/log.txt"), FileMode.Open);

      StreamWriter sw = new StreamWriter(fs);

// Foreach yapısı oluşturup verilerimizi kümeliyoruz.Her satırı item olarak alıyoruz ve ve array nesnesine aktarıyoruz.


      foreach (DataRow row in dt.Rows)
      {
        object[] array = row.ItemArray;

          sw.WriteLine(row["email"].ToString());
      

      }

// Dosya işlemlerimizi sonlandırıyoruz.


      sw.Flush();

      sw.Close();

 

Böylelikle asp.net C# kullanarak bir mysql veritabanına bağlanıp belirttiğimiz tablodaki verileri bir text belgesine aktarmayı incelemiş olduk.

Kolay Gelsin .

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Sahte Kahramanlar

13 Haz 2009 In: Köşe Yazılarım


Günümüzde son zamanlarda en çok gördüğüm ve tanık olduğum rant kavgası belki de ülkemizde ileriye dönük ve global bir alana yayılabilecek projelerin ve fikirlerin ortaya çıkmasını engelliyor.

 Ülkemizde ne yazık ki her alanda olduğu gibi yazılım alanında da tekelleşmeye giden bir yol izleniyor. Hem de öyle bir tekelleşme ki birilerinin kuyruğuna bastığınızda önünüzü tıkamak için her türlü oyun oynanabiliyor. Etrafında kendinden bilgice ve çevre bakımından daha zayıf kişilerden aldığı güçlerle gelecek vadeden birçok kişinin önü kesilebiliyor.


Peki Neden ?


Bunun birçok sebebi olabilir. Acaba koltuk sevdası desek ne kadar isabet etmiş oluruz. Ego tatmini, kendinin övüleceği ve onu övebilecek kişilerden oluşan gruplarda ve topluluklarda yönetici olmak düşünemeyen sadece yönetilmeyi becerebilen insanların başına geçmek belki de onlar için vazgeçemeyecekleri bir tutkudur.


Geçmişini tanımayanın geleceği yoktur !


Bizler nasıl ki Türk olarak geçmişi ve atalarımızı tanıyorsak , onların yaptıklarını biliyorsak, değer veriyorsak aynı şeyler bilişim dünyası için nedense geçmişini tanımayan yazılımcıların olduğu bir ortama doğru sürüklendiğimizi fark ediyorum.


Son günler çok moda olan bir terim olan Lead kelimesini isminin önüne koyanlar koltuklarına sıkı sıkı sarılır hale geldiler. Halbuki onları o mevkiye yükselten insanlar olduğunu unuttular ve mevkinin verdiği sorumluluklar ile insanlar ile aralarına mesafe koymak zorunda kaldıklarını hissettiler.Her alanda görüldüğü gibi her çıkışın bir inişi olacaktır acaba o gün geldiğinde koltuklarıyla birlikte diplere doğru yol alırken yanlarında kimler olacak .


Global bir kuramlıdır bilmiyorum ancak ülkemizde son yıllarda en çok görülen bir hastalıktır yalakalık. Bireysel olarak hiçbir artı yönleri olmayan kişilerin belirli bir mevkiye gelebilmek için üst mevkide kişilere karşı göstermiş oldukları yakınlık sempatizyanı davranışlarının sonuçta vardığı nokta olarak görebiliyoruz. Hangi platform olursa olsun eğitim derecesi ve bulunduğu bölüm önemli olan sayılabilecek bir konumda olsa bile kişisel gelişim yönünden zayıf kalmış kişilerin başvurduğu bir yöntem olarak da adlandırabiliriz. Gerçekten hak edenlerin hak ettiklerini noktalara erişmesinde bu tip kişilerin gölgesinde kalmaları acaba ne kadar adaletli oluyor ? Farklı platformlarda görüyoruz ki daha sonra bu tip kişiler kendi durumlarının farkında olmamaları ya da işlerine öyle geliyor olacak ki adaletin temsilcisi rolünü üstleniyor. Sadece gülüyorum . Smile


Özgün olmak, kendi emekleriyle bir şeyler yapmaya çalışmak , başarmak ya da başaramamak ama elinden geleni yapmak gibi benim için çok önem taşıyan değerlerin kendi çıkarlarını herkesin ve her şeyin üzerinde tutan kişilerin ağzında kirlenmesini istemiyorum.


Üniversite hayatı boyunca hiçbir proje geliştirmemiş sadece bulunduğu ortamın eğlence koşullarını iyi değerlendirmiş kişilerin hayatın gerçekleri karşısındaki çabalamalarını izliyorum ve nedense içimden yardım etmek gelmiyor.Çünkü öyle insanlar görüyorum ki gerçekten emek veriyor,çabalıyor , hayatın bir ucundan tutmaya çalışıyor ama ne yazık ki bulunduğu ortam,okuduğu okul veya diğerleri kadar pohpohlayıcı bir zihniyete sahip olmamasından dolayı istediklerini elde edemiyor.


Gerçek kaybeden kim ?


Eğitimi bittikten sonra iş hayatına atılacak bir öğrenci olarak nitelendirirsek iki ayrı insan tipinden sizce hangisi gerçekten hak ettiklerine ulaşır? Bu sorunun cevabını bende bilmiyorum. Ancak şundan eminim ki rüzgar hangi yönden eserse essin gerçekten bilgiye sahip olanlar hiçbir zaman savrulmayacaklardır. Bu dünya döndükçe onlar her zaman ayakta kalmayı başaracaklardır. Çünkü bu yalakaların ve kendini kahraman gören sahte kahramanların kurdukları bir düzen değil, hayatın gerçekleridir.
Zayıf insanları yönetmek kolaydır. Çünkü yenilgiyi baştan kabul etmişlerdir ve herhangi bir çaba göstermiyorlardır bu da onları gün geçtikçe zayıf kılıyordur. Peki ya bir fiskede savrulup gideceğini düşündüğü insanlar onların şimdiki konumunu daha henüz öğrenciyken elde etmişlerse ne olacak? O zaman yapılacak iş bellidir, ne pahasına olursa olsun bu kişilerin önü kesilecektir.


Hiç kimsenin gücü başarmayı arzulayan ve bu doğrultuda çalışan insanların yolunu değiştirmeye yetmez. Yolundan sapmalara zorlayabilirler ama yönünü iyi biliyorsa onların tüm çabalarını boşa çıkaracaktır.


Aslında olayları farklı açılardan bakacak olursak, temel eğitim öğretim seviyesinden itibaren girişimcilik ve kişilik sahibi olmak adına herhangi bir özverili çalışma yapılmamasından dolayı insanlar kendilerini yanlış yetiştirebiliyor ve hazırcı bir yapıya bürünebiliyorlar. Örnek verecek olursak bir proje yapılması gerektiğinden o projeyi kendisi yorumlayıp ve kendi bilgi ve beceresi doğrultusunda ortaya bir şeyler çıkarmak varken işim kısa sürsün hazır bir şeyler kullanırım olur biter tarzında bir anlayışa sahip oluyor. Bu kişiler üniversitelerin bilgisayarla ilgili bölümlerinde okuyan insanlardan oluşuyorsa ülkemizin geleceğini pek aydınlık göremiyorum.
Sorumluluk sahibi olmak bence insanların kişilikleriyle doğru orantılıdır. Eğer bir insan ne kadar çok kendine özgüven duyuyorsa alacağı sorumluluklarda o kadar fazla olabilir.Ekip olarak girişilen bir işte kişisel çıkarlarına uygun ortamlar bulunamıyorsa ekip olma ruhundan uzaklaşıyorlar.

Örnek vermek gerekirse bir öğrenci kulübü kurulacağında herkes destek veririz tarzında cevaplarla kurucu kişilere destek oluyor ancak kulüp kurulduğunda bu kişiler nedense elini taşın altına koymaktan çekiniyorlar. Nerede verilen sözler, destekler? Buradan alacağımız ders ise insanların sözlerine dayanarak değil kendi planlarımız doğrultusunda hareket etmek ve pohpohçuluk yapan kişilerden oluşmayan bir ekip kurmak kulübün temelini kuvvetlendirecektir. Tabi dediğim kişiliğe sahip bir ekip oluşturmak da bu zamanda gerçekten zor bir iştir.


Amaçları dışında faaliyet gösteren bir çok topluluğun çalışmalarına şahit oldum. Kuruluş amaçları ve vizyonları ile yaptıkları çalışmalar hiç uyuşmuyor ve yaptıkları en iyi işleri kişisel reklamlarını yapmaktan öteye gidemiyor. İçinde bulunduğumuz ortamın koşulları değerlendirildiğinde bu tip kişiler belli ölçüde ve çevrede hedeflerine ulaşmış oluyor. Peki bu amaçsız kişilerin sapkın davranışlarına kim dur diyecek ?


Her toplum hak ettiği biçimde yönetilir.


Eğer bir toplumda kişisel çıkarlar, toplumsal hedeflerin önüne geçmişse orası için aydınlık bir gelecekten söz edilemez. Ülkemizde dünyaca ünlü yazılım firmalarının şubeleri bulunuyor. Ancak bu kuruluşlar geliştirmekten çok pazarlama ile ilgileniyorlar. Bu doğrultuda aldıkları çalışanlara da yazılımcı gözüyle değil, pazarlamacı gözüyle baktıkları için gerçekten üretken olan insanların fark edilmesi güçleşiyor. Üretimin olmadığı bir yerde pazarlama ne işe yarar ? Eğer bir yerde üretim varsa elbette ki pazarlanması da gerekecektir ve bunu da işinin uzmanlarının yapması ürünün geleceğinde büyük rol oynar. Ancak hep pazarlama olarak değerlendirilip üretime destek verecek çalışmalara gereken önem gösterilmezse ve göstermek istenilen topluluklara birçok engel çıkarılırsa girişimciliğin ömrü ne kadar uzun olabilir.

Söyleyeceklerim bunlarla sınırlı değil ama biliyorum ne kadar yazsak da bu düzen değişmeyecek.Eğer benimle aynı fikirde olanların seslerini duyurmalarına bir nebzede katkıda olduysam bu mutluluk bana yeter. Adil günler dileğiyle ...


Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Web Uygulamaları Güvenliği

6 Haz 2009 In: Güvenlik


Gelişen teknolojiye ayak uydurmak gün geçtikçe zorlaşıyor. Yeni ürünlerin sürekli küçülen ve detaylaşan ekstra özellikleri eminim ki birçok kullanıcı tarafından kolay çözülemiyor. Web dünyasında da durum bundan ibarettir.


Gün geçtikçe gelişen yazılım teknolojileri ve doğurduğu güvenlik problemlerinin boyutlarını şüphesiz ki ne durumda olduğunu önceki sayılarımızdan ve günlük haberlerden biliyoruz. Güvenliğin yaşamımızdaki önemini kavramak için ne yazık ki başımızdan bir olay geçince farkında oluyoruz. Web siteniz için düşündüğünüz güvenlik çözümlerine web sitenizin hackerlar tarafından ele geçirildiği zaman mı başvuracaksınız?


Gelin birlikte web sitenizin güvenliği için dikkat etmeniz gereken güvenlik çözümlerini birlikte inceleyelim.Yazılım güvenliği yapısı itibariyle geniş konu yelpazesine sahiptir.


XSS (Cross Site Scripting) ile Kurban Avı

Betiklerin herhangi bir filtreden geçirilmeden ve olası HTML, JavaScript vb. gibi girdilere izin verildiği konumlarda etkili olur. XSS ataklarından başta web site sahipleri olmak üzere kullanıcı boyutunda da etkilenmeler olur. Bu saldırı yöntemiyle kullanıcıların profil ve parola gibi özel bilgileri çalınabilir, web sitesi zararlı bir adrese yönlenebilir ve web sitesinin çeşitli noktalarının kullanım dışı bırakılma durumu söz konusu olur.


Saldırganlar tarafından bu açıklar genelde deneme yanılma yöntemi kullanılarak tespit edilir.
Web sitenizde bir arama işlemi gerçekleştirecek yer mevcutsa bilin ki ilk bakacakları yer orasıdır. Arama özelliğinin aktif olduğu sayfalarda basit bir filtreleme yöntemi ile zararlı karakterleri filtreleyebilirsiniz.


Bazı sayfalarınızda gelen değerlerin ne olacağını kod aşamasındayken belirlediğiniz noktalarda gelebilecek tüm ihtimalleri düşünüp o duruma göre filtreleme yapmalısınız. Örneğin tarafınıza ulaşması gereken değerler rakamsal değerler ise o halde harf girdilerini filtreleyebilirsiniz. Ekstra olarak tehlike arz edebilecek < > " ' % ; ) ( & + - gibi özel karakterleri de filtreleyip sayfanızdaki girdi kontrolünü güçlendirebilirsiniz. Tüm bu ihtimaller göz önüne alındığında bu karakterlerin ASCII değerlerinin de filtrelenmesi güvenliğinize güç katacaktır. Zararlı kodları encode ederek olası tehlikelerden korunabilirsiniz.


Yazılım dillerinin çeşitliliğini göz önüne alarak her dilde amacı aynı kullanım çeşitleri o dile özgü olan yöntemler mevcuttur.  Tercih ettiğiniz dile bağlı olarak zararlı karakterleri temizlerken Str_Replace(),HTMLEncode(), Replace() vb. özel fonksiyonları kullanarak zararlı karakterlerin filtrelenmesini sağlayabilirsiniz. Özellikle JavaScript terimlerini de mesaj, yorum vb. karakter girdilerinin olacağı noktalarda filtrelemeniz güvenliğinizi büyük ölçüde katkı sağlayacaktır. Örnek olarak <script>JavaScript:alert(document.cookie);</ script> gibi bir kod ile kullanıcın o anki cookie bilgileri uyarı penceresi olarak ekrana gelecektir. Bu kodu çeşitli parametreler ile biçimlendirip kullanıcıların bilgilerinin kötü niyetli kişilerin eline geçmesi mümkün kılınıyor. XSS saldırılarını önlemek için girdilerin kontrolü ve güvenli filtreleme yöntemleri ile olası saldırılara karşı güvende olabilirsiniz.


Kullanıcılar olarak e-posta adreslerinize gelecek olan bağlantılara tıklarken dikkatli olmalıyız ve özellikle fotoğrafların içine gizlenen zararlı kodlar ile özel bilgileriniz başkalarının eline geçebilir bu duruma karşıda haberdar olup gerekli güvenlik tedbirlerini almalıyız.


SQL Injection ve Zayıf Betikler

SQL (Structured Query Language) veritabanlarında veri çekme, silme, güncelleme gibi temel işlemler için kullanılan dildir. Günümüzdeki dinamik yapılı sitelerin hemen hepsinde veritabanı ile bağlantı işlemlerini gerçekleştiren ve belirttiğimiz işlemleri uygulayan SQL dilini kullanırlar.


SQL Injection saldırılarının temelinde XSS saldırılarında olduğu gibi zararlı karakterlerin veritabanı işlemlerini gerçekleştirdiğiniz noktalara uygulanması ile veritabanındaki bilgilerin saldırganın eline geçmesine olanak sağlar.


Kullanıcıların tarafından bilgilerin dinamik sorgular ile veritabanına iletilmesi sırasında çeşitli meta-karakter girdileri sağlanarak SELECT, DELETE, INSERT, UPDATE gibi SQL komutlarının çalıştırılması sağlanıyor ve ardından belirtilen parametre düzeyinde işlemler gerçekleşerek kullanıcıların ve web sitesinin özel bilgilerine ulaşılıyor. Tablo, satır ve sütun isimlerine ulaşıldıktan sonra yine SQL yordamlarıyla istenilen bilgilere ulaşılıncaya dek işlemler yapılıyor.


SQL Injection saldırılarından korunmak için ilk olarak güvenli SQL yordamları yazılmasının bilinmesi gerekiyor.  Örneğin ASP dili kullanılarak hazırlanmış bir SQL sorgusu “SELECT * FROM Üyeler WHERE kullaniciadi =      '" & kullanici & "' AND Parola = '" & Parola & "'" olduğunu düşünürsek bu SQL sorgusuna atanacak “' OR ''='” karakterleri ile sorgu manipüle edilebilir. Sorgunun son şekli SELECT * FROM Üyeler WHERE kullaniciadi = '' OR ''='' AND Parola = '' OR ''='' olacaktır. Bu sorgu itibariyle dönen değerler olarak veritabanındaki kullanıcı adı ve parolası boş olanları kontrol edecek ve ek olarak boş her zaman boş’a eşit olacağı için bizi sistemde kayıtlı olan değerleri getirecektir.


Manipülasyonlardan korunmak için sorguların iyi filtrelenmesi gerekir. XSS saldırı metodunda bahsettiğimiz özel fonksiyonları SQL Injection saldırılarından korunmak için de kullanabilirsiniz. Girdilerin numeric bir değer olup olmadığını önceden belirlediyseniz numeric değerler dışındaki karakterleri yasaklayabilirsiniz. Girdi uzunluğunun da sizin belirttiğiniz karakterler sınırını aşmaması için önlemler alabilirsiniz.

Zararlı Karakterler

chr(13)

chr(34)

 chr(39)

  /

  \

  ?

  *

 

  OR

  AND

  %

  &

  <

  $

  >

  !

 

  #

  like

  drop

  create

  modify

  rename

  alter

  cast

  join

  union

  where

  insert

  delete

  update



Tablodaki karakterleri filtreleyip SQL Injection gibi olası saldırılardan korunabilirsiniz.
SQL Injection’dan korunmak için bu yöntem sizi büyük ölçüde rahatlatacaktır tabi ki hepsi bu kadar değil. Detaylı olarak güvenlik yöntemlerine önümüzdeki yazılarımızda değineceğiz.


CSRF (Cross Site Request Forgery) ile Oturumları Yönetin


CSRF saldırıları ile oturum (session) kontrollerinin göz ardı edilmeye zorlanarak varsayılan üst düzey yetkilere sahip olan kullanıcının yetkisi dâhilinde işlem yapılabilmesi mümkün oluyor. Saldırganın bir web sitesine yerleştirdiği kod vasıtasıyla belirttiği hedef üzerinde veri ekleme, silme, güncelleme vb. işlemleri gerçekleştirmesi mümkün oluyor.


Sosyal mühendislik ile birleştiği noktalarda çok başarılı sonuçlar veriyor. Hedef kullanıcı farkında olmadan şifreleri değişiyor ya da bağlı bulunduğu sistem üzerinde belirttiğimiz haklar doğrultusunda yeni kayıt işlemleri gerçekleşiyor. Saldırganın sadece belirlediği kullanıcı adı ve parolayı yazıp sisteme erişmesi mümkün oluyor.

CSRF çalışma mantığını anlatan bir grafik.


Ek kimlik doğrulamasının yapılması yazılımın gelecek noktalarda karşılaşabileceği güvenlik zayıflıklarının önüne geçecektir. CSRF, kimlik doğrulamasının olduğu ancak kullanıcılar tarafından halen aktif olduğu süre içinde dış etmenlerin o kullanıcıya fark ettirmeden işlem yaptırarak ortaya çıkmasından dolayı kimlik kontrollerinin denetimi yazılımcıların dikkat etmesi gereken noktadır.
Uzak bağlantılardan dışarıdan gönderilen her verinin kontrolünü yapmanız halinde olası tehlikelerden büyük oranda kurtulursunuz.


CAPTCHA uygulamasının kullanılması da sizleri olası CSRF saldırılarından büyük oranda koruyacaktır. Önemli işlemlerin gerçekleştiği noktalarda random olarak üretilen CAPTCHA değerlerinin onaylanıp işleme dâhil olması durumuyla birlikte işlemlerin gerçekleşmesi sizleri olası CSRF saldırılarında kurban konumundan kurtaracaktır.


Genel olarak bakıldığında kod tarafından yapmanız gerekenler form gibi dışarıdan veri alacağınız noktalarda veritabanıyla bağlantılı olarak anahtar kaydetme ve session ile anahtar doğruluğu eşitleme yapabilirsiniz. Session süresini işlemler dâhilinde bir süre belirleyebilirsiniz böylece kullanıcılar tarafından doğabilecek oturum problemlerinin önüne geçebilirsiniz.


Kullanıcılar olarak da web sitelerinden mutlaka oturumu kapat şeklinde çıkış yapmalıyız. Session süresinin belirli bir zaman diliminde olması kullanıcılar tarafından unutulan çıkış yapılmasının önüne geçecektir. Kişisel güvenliğimize her noktada dikkat etmeliyiz.


DDOS (Distributed Denial Of Service) ile Servisleri Çökertin
IP tabanlı olarak belirlenmiş hedefleri ardı ardına paketler göndererek hedef sistemin yollanan paketlere cevap veremez duruma getirilmesini amaçlayan bir saldırı metodudur. Saldırgan hedef sistem üzerinde çalışan uygulamaların durdurulmasını amaçlayarak HTTP,FTP,SMTP gibi servislere saldırarak çalışmasını engelleyebilmektedir.
 
DDOS atakların başarılı olma noktalarında saldırganların bağlantı güçlerinin etkisi önemlidir. Birden fazla saldırganın aynı anda saldırıya başlaması ve saldırganların güçlü internet bağlantılarına sahip olması saldırının boyutunu büyük oranda etkilemektedir.


Saldırının boyutlarını saldırgan sayısıyla doğru orantılı olmasından dolayı bu yöntemi temel alarak yayılan birçok worm mevcut ve bu sayede dünya devi olarak nitelendirilen birçok web sitesinin yayınını durdurmaya başardılar.


 
Bu sahne her zaman yaşanacak bir durum değildir. Geçmiş yıllarda Mydoom solucanın saldırıları üzerine google arama motoru geçici bir süre servis dışı kalmıştı. Saldırının bu denli etkili olmasında birkaç milyon kişiye ulaşan solucanın aynı anda hedef olarak google web sitesini seçmesi üzerine google sistemlerinin yanıt verememesinden dolayı siteye erişim kesilmişti.


DDOS saldırılarını yazılımsal olarak önlemek yeterli olmuyor. Bir blacklist oluşturup gelen paketlerin birden fazla olması durumunda otomatik olarak ip adresinin erişiminin engellenmesi mümkündür. Eğer gelen saldırılar az sayıda ip üzerinden geliyor bu yöntem sizin kurtarıcınız olacaktır. Büyük boyutlu saldırılarda bu yöntem etkisiz kalıyor. DDOS saldırılarına çözüm olarak sistem tarafında harici güvenlik duvarı kullanılması gelebilecek birçok saldırıyı etkisiz kılacaktır.


Yazılım tarafında alacağınız bazı küçük çaplı önlemler de mevcuttur. Web sitenize aynı ip adresi üzerinden birden fazla erişimi engelleyebilirsiniz. Web sitenizdeki sayfalarınız arasında belirli bir sayfa yenile süresi belirleyebilirsiniz. Yazılımlarınıza entegre olarak kullanabileceğiniz birçok anti-flood betiği mevcuttur kolayca entegre edip kullanabilirsiniz. Bu küçük önlemler DDOS saldırılarını tam anlamıyla önlemek için yetersizdir ancak flood türü saldırılar için web sitenizi güvende kılacaktır.

Exploiting ve Tehlike’nin Boyutları

Exploitler sistemlerin ve yazılımların açıklarını sömürerek türüne göre amacını gerçekleştiriyor.  Bir sisteme ek olarak kullanıcı ekleme veya sistemde yer alan bilgileri ele geçirme ya da hedef sistem üzerinde etkili olarak buffer oveflow dediğimiz bellek taşmasına sebep olarak sistemin çalışmasını etkiliyor.


Exploitler, yazılımlarınızı geliştirdiğiniz sırada güvenli olmayan kod yazılmasından veya tahmin edilemeyen işlemlerin programcı tarafından fark edilememesinden dolayı ortaya çıkıyor ve sisteminize dışarıdan bir müdahale olabilecek noktaya kadar erişim imkânı sunabiliyor. Saldırgan belirlediği komutlar doğrultusunda web siteniz üzerinde yönetici haklarına sahip duruma geçebiliyor.


 


Web sitenize gelebilecek saldırılar bunlarla sınırlı değil. Birçok saldırı çeşidi mevcut ancak genel olarak bakıldığında bahsettiğimiz konular ile doğrudan bağlantılılar.
Web sitenize entegre olarak kullanabileceğiniz IP denetleme ve kayıt betikleri mevcuttur. IP kontrolü kullanmanız ve log işlemlerini web sitenizde tercih etmeniz aynı zamanda sürekli takip etmeniz sizi olası saldırılardan önce uyarı niteliği taşıyacaktır.


Güvenlik yalnızca yazılım tarafında alınan önlemler ile maalesef sağlanamıyor. Yazılımlarınızda güvenli olduğunuz kadar web sitenizin yayınlandığı sunucuların da güvenliği iyi olmalıdır. Aksi halde tüm güvenlik çözümleriniz etkisiz kalacaktır. Sistemin bir açığından faydalanıp sisteme gizlice sızan bir kişi tarafından web siteniz kullanım dışı kalabilir.


Sistemlerin güvenliğini sağlamanın birçok farklı yolu mevcuttur. Hepsi yalnızca görevi dâhilindeki durumlarda aktif olarak güvenlik sağlayabiliyor. Genel olarak bakıldığında sunucunuza gelebilecek DDOS ve benzeri saldırılardan bir Güvenlik Duvarı (Firewall) büyük oranda çözüm olabilir. Harici olarak ekstradan sunucu barındırma firmanızdan talep ederek alacağınız bir donanım parçası ile web sitenizin bağlı olduğu sunucuyu koruma altına alabilir, saldırı gelebilecek portları kullanım dışı bırakıp saldırıların boyutlarını düşürebilir ve izinsiz kullanıcıların sisteminize erişmesini büyük oranda engellemiş olursunuz.


Sisteminizin son güvenlik güncellemelerinin yapılması ve son yamaların uygulanmış olması da sizi önemli ölçüde güvenli kılacaktır.
Güvenlik, bireylerin bilinçli olma düzeyine orantılı olarak artabilen ve azalabilen bir olgudur. Sisteminizin ve yazılımlarınızın güvenliği tamamen sizin olaylara bakış açınız ve tüm ihtimalleri göz önünde bulundurup tedbirler almanız ile ilgilidir. Güvenliğinizi ihmal etmeyin.

Olcay KÜK

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Blog'dan

Biraz yazılım,biraz güvenlik,biraz da hayattan karalamalar ...


İletişim: ok@olcaykuk.com

Merak ettiklerini haydi sor :)