Visual Studio 2010

by Doğan ÇAKMAK 4. Ağustos 2010 02:23

Visual Studio 2010 arayüzü ilk açtığımda VS 2003 kullanarak uygulama geliştirdiğim günler gözlerimin önünden bir film şeridi gibi geçti :)

VS 2003 den 2010 a neler değişmiş? Bugün VS 2010 ile neler yapabiliyoruz kısaca değinmek istiyorum.

Tasarımcıların ve yazılımcıların ortak platformlarda çalışması, VS 2010 lansmanında en çok vurgulanan noktalardan bir tanesiydi. Şu an ki proje süreçlerimizde bunun gerçekleştiğini gözlemlemekteyim.

Günümüzde tasarım en az kod ve veri tabanı kadar önem kazandı. Yazılımcı sayısı arttıkça ürünler kod ve veritabanı üstünlükleri ile bir yere kadar rekabet ettiler ve neredeyse aynı fonksiyonlara sahip yazılım ürünleri ile karşı karşıya kaldık. Bunun farkında olan firmalarda fark yaratabilmek için tasarım ve kullanım kolaylığı gibi konuların üzerine giderek fark yaratma çabasına girdiler.

Hal böyle olunca tasarım ve yazılımcıların ortak platformda çalışması kaçınılmaz bir gereksinim halini aldı. Bugün yazılımcılar ve tasarımcılar VS 2010 platformunda gerçekten bunu gerçekleştirebiliyorlar. İsterseniz biraz daha detaya girelim, örneğin:

Tasarımcı Expression Blend ile ara yüz tasarımı yapıyor. Expression Blend bildiğimiz gibi XAML mark-up dilini kullanıyor. Aynı şekilde yazılımcı da bu XAML kodunu hiçbir değişiklik yapmadan arayüz olarak kullanabiliyor. Hatta bununla da kalmayıp arka planını kodlamaya ve veri tabanı işlemlerini gerçekleştirmeye başlıyor.

Tasarımcı ve yazılımcının bu koordinede çalışması proje süreçlerini de daha verimli kılıyor.

Tüm yazılımcı, tasarımcı ve proje yöneticilerine buradan duyurulur :)

Konu ile ilgili merak edilenler olursa paylaşabilirim. Şimdilik bu kadar 

1 kişi tarafından 5.0 olarak değerlendirildi

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , , ,

Çözüm Önerileri | Proje Yönetimi | Yazılım Yönetimi

Google TV ile herkes televizyon reklamı verebilecek!

by Doğan ÇAKMAK 21. Mayıs 2010 04:12

 

Google attığı bu adımı "TV  reklamı vermek artık kolay ve hesaplı" olarak lanse ediyor.

Normal şartlarda 10 saniyelik bir reklamın televizyonda oynatılması için ödeyeceğiniz tutar yerine 20$ dolar ödeyeceğinizi düşünün... Televizyona verilen reklamın doğru kitlere ulaştığından ne kadar emin olabiliriz? Google bu sorununda cevabını veriyor. Ulaşmak istediğiniz kitleye yönelik reklamınızın oynatılacağını ve bu sayede ödediğiniz paranın tam karşılığını alacağınızı savunuyorlar.

Bunun yanında TV' de oynayan reklamınızın ardından firma sitenizin aldığı ziyaretler analiz edilerek sizler için raporlanacağı vurgulanıyor. 

Detaylı bilgi için: http://www.google.com/adwords/tvads/

 

1 kişi tarafından 5.0 olarak değerlendirildi

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , ,

Çözüm Önerileri | İnternet | Web Gelişimi

ASP.NET AJAX Reorderlist Kontrolü

by Doğan ÇAKMAK 20. Mayıs 2010 08:07

 

Bu yazı reorderlist kontrolünü SQL Server veri tabanı ile kullanırken sorun yaşayan yazılım gelişticiler için:

Reorderlist kontrolünü sisteminize adapte ettikten sonra verilerin düzenlenmesine olanak sağlayan butonunuza tıklandığında doğru sıradaki verinin karşınıza çıkmadığını görürseniz telaşa kapılmayın. Çünkü çözümü gayet basit: veri tabanından veri çekerken kullandığınız SELECT komutunun sonunda  "ORDER BY [sıralama kolonu]" yapmış olmalısınız

Sıralamaların ve güncellemelerin doğru yapılması için sql komutunuzun "ORDER BY"bölümü aşağıdaki gibi olması gerekiyor:

"SELECT id, icerik, yazar, sira FROM [tablo adı] WHERE [parametreler] ORDER BY sira, id, yazar, icerik"

Yukarıdaki sql komutundaki ORDER BY bölümüne dikkat edersek verilerin sıralamalarının yapılırken sql server'a yorum hakkı vermememiz gerekiyor. Eğer düzenle butonuna tıkladığınızda hata ile karşıyorsanız yukarıdaki gibi ORDER BY kodlarsanız sorun ortadan kalkacaktır.

Umarım faydası olur

ASP.NET AJAX Türkçe Karakter Çözümü ve Bilinmeyen Tag Çözümü

by Doğan ÇAKMAK 20. Mayıs 2009 16:43

AJAX kullanan web geliştiricilerin karşılaştığı en büyük güçlüklerden bir tanesi kendi local ayarları ile geliştirdikleri uygulamaları başka bir sunuya yükledikleri zaman doğru çalışmamasıdır. ASP.NET AJAX geliştiricilerine bu yazımda bazı tavsiyeler vereceğim. Karşılaştığım güçlüklere arama motorları aracılığıyla ulaştığım birkaç bilgiyi paylaşmak istiyorum.

Bunlardan birincisi "unknown tag" hatası. Dosyalarınızı yüklediğiniz sunucunun varsayılan ayarları kendi bilgisayarınızda çalıştığınız gibi ayarlanmamış olabilir. Bunlardan bir taneside AJAX kontrollerinin tagları... Örneğin aşağıda gördüğünüz ajax kontrolünde tag olarak ajaxToolkit kullanılmış. Genellikle local de kullandığınız tag' lar ile yüklediğiniz sunucuya varsayılan olarak tanıtılmış tag' lar uyuşmaz. Bu gibi durumlarda kendiniz kullandığınız tag' ları aspx sayfalarınızın başında belirtmeniz gerekmektedir. 

<ajaxToolkit:Accordion
ID="MyAccordion"
runat="Server"
SelectedIndex="0"
HeaderCssClass="accordionHeader"
HeaderSelectedCssClass="accordionHeaderSelected"
ContentCssClass="accordionContent"
AutoSize="None"
FadeTransitions="true"
TransitionDuration="250"
FramesPerSecond="40"
RequireOpenedPane="false"
SuppressHeaderPostbacks="true">
<Panes>
<ajaxToolkit:AccordionPane
HeaderCssClass="accordionHeader"
HeaderSelectedCssClass="accordionHeaderSelected"
ContentCssClass="accordionContent">
<Header> . . . </Header>
<Content> . . . </Content>
</ajaxToolkit:AccordionPane>        
.
.
.
</Panes>            
<HeaderTemplate>...</HeaderTemplate>
<ContentTemplate>...</ContentTemplate>
</ajaxToolkit:Accordion>

Örneğin bu kontrol için aspx sayfanızın başına aşağıdaki kod bloğunu eklemeniz gerekmekte: 

<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagPrefix="ajaxToolkit" %>

tagPrefix' in eşit olduğu cümleciğe istediğiniz tag adnını vererek AJAX kontrollerini kullanabilirsiniz.

 

İkinci paylaşmak istediğim bilgi updatepanel Türkçe karakter sorunu ile ilgili... UpdatePanel web sayfalarımızın post back yapmadan daha hızlı çalışmasını sağlayan bir kontroldür. Detaylı bilgi için ASP.NET AJAX updatepanel şeklinde google da aratırsanız istemediğiniz kadar bilgiye ulaşabilirsiniz. Lafı fazla uzatmadan konuya gireceğim. UpdatePanel kullanırken veri tabanına kayıt yapıyorsanız ya da veri tabanından veri çekiyorsanız Türkçe karakterlerde sorun yaşayacaksınızdır. Aklınıza hemen web.config dosyasına eklediğiniz <globalization tag'ı gelebilir fakat sizin için her zaman çalışan globalization tag'ı bu kez size sorun çıkarabilir. Size sorun çıkarmayacak <globalization tag'ını sizinle paylaşmak istiyorum:

<globalization requestEncoding="utf-8" responseEncoding="utf-8" fileEncoding="windows-1254" responseHeaderEncoding="windows-1254" />

Bu bloğu web.config dosyanıza ekledikten sonra updatepanel size Türkçe karakter sorunu çıkarmaktan vazgeçecektir.

 

İyi çalışmalar dilerim

 

 

 

Türkiye, Microsoft'un yeni üssü oluyor

by Doğan ÇAKMAK 22. Nisan 2009 16:18
Steve Ballmer

Microsoft CEO'su Steve Ballmer Türkiye'yi ziyaret etti. Söylediğine göre büyük ölçüde Türkiye'ye yatırım yapılacakmış. Mobil yazılımdan oyun geliştirmeye kadar günümüzün popüler yazılım geliştirme alanlarına büyük destek verileceğini söylemiş. En çok sevindiğim haberde lise öğrencilerinin Dreamspark kapsamında ücretsiz yazılım geliştirme araçlarına sahip olabilmeleri...

NTVMSNBC de okuduğum bu haberi ilk okuduğumda çok güzel bir gelişme olarak yorumladım. Fakat CEO'nun söylediklerine bakılırsa e-devlet ve sağlık sektörünün yazılım işlerine el atmak istediklerini belirtiyor. CEO' nun söylediklerini bütünsel olarak değerlendirdiğimde kısa vade için güzel bir gelişme fakat uzun süreç içerisinde büyük bir bağlılık yaratacaktır. Lise öğrencilerinin Microsoft yazılım araçlarını kullanması iyi birşey. Buna karşı çıkmıyorum. Ticari olarak bakıldığında da sorun yok. Çünkü siz 1000 dolara aldığınız yazılımı kullanarak 100.000 dolar kazanabiliyorsanız ve hatta yurt dışına iş yapıyorsanız işte bu başarıdır. Fakat devlet bazında bu sorun çıkaracaktır. Yerli işletim sistemimiz olan Pardus' a gereken önem verilmeli... Çünkü Microsoft ve Adobe firmalarına devletimiz her yıl milyonlarca dolar para ödüyor. Biz ne kadar dışarıya yazılım ihraç edersek edelim ülke bazında hiçbir zaman kar sağlayamayacağız. Ticari olarak Microsoft kullanalım fakat devlet dairelerinde ve okullarda Pardus olsun! Ancak bu şekilde ülke olarak yazılım sektöründe var olabiliriz. Yoksa iyi yazılımcılar gider Microsoft'ta çalışır. Microsoft'ta Türkiye'den milyon dolarlar kazanır. Microsoft kazanacağını gene kazanır fakat artık devlet bu paraları her yıl ödemesin! Sadece ticari alandaki projelerde kullanılsın.

Benim okuduğum haber hakkında ve genel görüşlerim böyle. Microsoft araçlarını kullanıyorum ve ticari olarak kullanılmasını savunuyorum fakat devlet bazında yerli yazılım tek kurtuluş yoludur...

3 kişi tarafından 4.3 olarak değerlendirildi

  • Currently 4,333333/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , , ,

Çözüm Önerileri | Eğitim | Eleştiri

Visual Studio Server Explorer Sorunu

by Doğan ÇAKMAK 16. Nisan 2009 08:03

Visual Studio' yu aktif olarak kullananlara veri tabanı yönetiminde yardımcı olan Server Explorer penceresi bazen hiçbir sebep yokken açılmayabilir. Peki bu durumda ne yapmanız gerekiyor?

  • Öncelikle Bilgisayar üzerinde sağ tuş yapın ve hizmetler menüsünün altındaki bütün SQL Server hizmetlerini durdurun
  • Sonra Başlat > Programlar > Visual Studio 200 > Visual Studo Tools > Visual Studio 2008 Command Promt' u tıklayın
  • Açıln komut ekranına devenv/resetsettings yazın ve enter tuşuna basın
  • Bu işlemleri yapmadan önce Visual Studio kısa yolunuzun "Yönetici Olarak Çalıştır"olmaması gerekir. 

Bu işlemleri sırasıyla gerçekleştirdiğinizde sorun ortadan kalkacaktır.

İyi çalışmalar dilerim

3 kişi tarafından 3.7 olarak değerlendirildi

  • Currently 3,666667/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , , ,

Çözüm Önerileri | Teknik

Localhost'a ulaşamıyorum. Ne yapmam gerek?

by Doğan ÇAKMAK 1. Nisan 2009 10:09

Visual Studio' da çalışırken yaptığım uygulamaları tarayıcım da görüntüleyemediğimde çıldırdım. Localhost'a ulaşamıyordum Undecided Öncelikle IIS' i yeniden kurdum. Bilgisayarım üzerinde çalışan hizmetlerden alakalı olabileceklerin tamamını başlattım. Genede bir sonuç alamadım. Google ile yaptığımız çalışmalar sonucunda da elle tutulur birşeyler elde edemedim. Son çare olarak İbrahim Çakır arkadaşıma danıştım (Kendisine burdan teşekkür ediyorum). Meğer windows\system32\drivers\etc klasörünün altında hosts diye bir dosya varmış. Bu dosya içerisine aşağıdaki satırları kopyalamam gerekiyormuş:

127.0.0.1       localhost

::1             localhost

Ve, sorunum çözüldü... 

Buna yol açabilecek bazı durumların olduğunu biraz araştırma yaparak öğrendim. Bilgisayarınıza kurmuş olduğunuz proglamlar kurulum esnasında bu tür değişiklikler yapabiliyor. Bu sorun bilgisayarıma Active Worlds' ü kurduktan sonra ortaya çıktı. Kurduğunuz programlardan kaynaklanacağı gibi işletim sisteminizin güncellemelerinden de kaynaklanabilir. 

İlgilenenler için hosts dosyasını ekte yüklüyorum Wink

Sorunsuz çalışmalar..

 

hosts.txt (857,00 bytes)

3 kişi tarafından 5.0 olarak değerlendirildi

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , , , ,

Çözüm Önerileri | Web Gelişimi

Expression Web SuperPreview ile Tarayıcı Testlerinizi Hızlandırın

by Doğan ÇAKMAK 19. Mart 2009 09:11

Bir web geliştiricisinin karşısına çıkan en büyük sorunlardan bir tanesi geliştirdiği uygulamaların farklı tarayıcılarda (explorer, firefox, opera, vs.) farklı görünmesidir. Tarayıcı testini yapmadan önce bilgisayarımızda kurulu olan bütün tarayıcılar açılır ve hangisinde nasıl görünüyor acaba diye bakılır "dı". "Dı" demeyi çok isterim açıkçası çünkü expression web ile birlikte gelen bu özellik baya işimizi kolaylaştıracak gibi görünüyor.

Şu an yaptığım uygulamaların Explorer'ın farklı sürümlerinde nasıl göründüğü test etmek için "IE Tester" isimli bir uyguluma kullanıyoru. Bu uygulama ile Explorer' ın 6,7 ve 8 beta versiyonlarında nasıl göründüğünü kontrol edebilirsiniz. Bu programı elde etmek için google'a "IE Tester" anahtar kelimesi ile sormanız yeterli. Burda verebileceğim kısıtlı bilgiden çok daha fazlasını edinebileceğinizi söyleyebilirim.

Şimdi gelelim SuperPreview'a... Ürünün beta versiyonu şu an indirilip kullanılabilecek durumda. Ürünün beta versiyonunu indirmek için tıklayın.Ürünün full versiyonu Expression Web 3 ile birlikte geliyor. Ürünün adı aslında çok uzun: "Expression Web SuperPreview for Internet Explorer" ama yaptığı iş de bir o kadar güzel. Bilgisayarınıza farklı browserların hepsinin barındırmak ya da http://browsershots.org/ gibi görsel olarak tarayıcı çıktılarınıda alabilirsiniz. Fakat bu yöntemler web geliştiricisinin gereksiz yere zamanını tüketen işlemler. Microsoft araçlarını kullaranarak proje geliştirdiğim için değil gerçekten yapılması gereken bir yazılımın ortaya çıkmak üzere olduğu için konu üzerine bu kadar vurgu yapıyorum. 

Expression Web SuperPreview' e ait bulduğum ekran görüntülerini paylaşmak istiyorum:

Mind Map (Kavram Haritası) Proje Geliştirirken Nasıl İşinize Yarar?

by Doğan ÇAKMAK 13. Mart 2009 14:53

Mind Map yani Kavram Haritası nedir? Kavram Haritası' nın genel tanımı: kelimelerin, görevlerin, fikirlerin ve bunun gibi elemanların bir anahtar kelime ya da bir fikir üzerinde yerleşmesi ile ortaya çıkan haritadır. Peki böyle bir harita üretmek proje gelişim sürecine nasıl katkıda bulunur? Proje yönetimiyle ilgili yayınladığım ilk yazılardan biri olan ADDIE modelinin Analiz aşamasının yazılım projeleri üzerinde uygulanma şekline dikkat çekmeye çalışmıştım. Bu yazımda belirteceklerimde ADDIE modelinin Design yani Tasarım aşamasının önemli bir bölümünü oluşturmakta... Projenin tasarım aşamasına geldiğinize karşınıza düzenlenmesi ve mantıklı bir organizasyona sahip olması gereken fikirlerle karşı karşıya kalırsınız. Bu fikirleri organize etmenin en iyi yolu kavram haritası oluşturmaktır. Kavram haritaları sayesinde projenizin elemanlarını ya da projenizle ilgili fikirlerin birbirleriyle olan bağlantılarını oluşturmuş olursunuz.

Şimdiye kadar bahsettiklerim sizlere bir hikaye olarak gelebilir. Bir örnek vererek aklınızda bu hususu daha iyi canlandırmanızı sağlamayı deneyeceğim: Düşünün ki bir web sitesi yapıyorsunuz ve bu web sitesinin site haritasını tam olarak bilmiyorsunuz... Site haritası siteyi ziyaret edenlere site içeriğinin mantıklı organizasyonunu gösterir. Böylece siteyi ziyaret eden kişi aradığını bulmak için site içerisinde kaybolmaz. Eğer sizde projenizi yönetirken Kavram Haritası oluşturmazsanız proje çalışanlarınız ne yaptıklarının farkına varamayacaklardır. Proje çalışanlarının yaptıkları işin hangi fikir ya da bölüm altında  olduğunu bilmeden, sizin verdiğiniz işi anlamasına imkan yoktur. İmkan yoktur demek biraz acımasız bir tespit oldu fakat proje yöneticisinin görevi risk değişkenlerinin sayısını düşürmektir. Riskleri azaltmanın ve dolayısıyla yaptığı işi neden yaptığını bilen proje çalışanları daha verimli olacaklardır. Bu konuda yanılmıyorsam hepimiz hem fikiriz...

Şunu da diyebilirsiniz: Benim çalışanlarım zaten ne yaptığını bilmesin. Sadece ağacı görsün, ormanı görmesin... Bunu istiyorsanız ve projeyi geliştirmek için fazlaca zamanınız varsa, oluşacak riskleri iş gücü olarak ve maddi olarak telafi edebiliyorsanız Kavram Harita'ları ile çalışmanıza gerek yok :) Proje Yönetimi verimlilik üzerine temel atmış bir mesele olduğu için verimliliğin olmadığı bir çalışma içinde zaten proje yönetimi için pek kafa patlatmaya da gerek yoktur açıkçası...

Özetlemek gerekirse Mind Map yani Kavram Haritaları proje gelişim sürecinin Tasarım aşamasında büyük önem taşır. Proje fikirlerinizin şekilenmesine ve anlam kazanmasına zemin sağlar.

Önemli Not: Proje yönetimi üzerine yazmış olduğum tüm yazılar ADDIE modelinin proje yönetim sürecine yansımalarıdır. Referansım ADDIE modeli üzerine almış olduğum akademik (ODTÜ-BÖTE) eğitimdir. Proje Yönetimi ile ilişkilendirilmesi benim tarafımdan yapılmış bir çalışmadır. ADDIE modelinin bu şekilde uygulamasının olduğu başka bir alan varsa lütfen paylaşın. ADDIE üzerine çalışmalarım halen devam ediyor. Vermiş olduğum bilgiler proje süreçlerinde kullandığım ve başarılı olduğum uygulamalardır. Denemek ve faydalarını görmek size kalmış...

Başka bir Proje Yönetimi yazısında görüşmek üzere

ASP.NET için SQL Injection' dan korunma yolları

by Doğan ÇAKMAK 6. Mart 2009 14:55

Geliştirdiğim websitelerden bir tanesine üç tane hacker arkadaşın saldırmasından sonra güvenliğe gereken önem vermeye başladım. Tam olarak ne zaman güvenliğin üzerine ciddi olarak eğilmeye başladığımı hatırlamıyorum fakat öğrendiğim bazı şeylerin olgunlaştığını düşündüm ve günlüğüme birşeyler karalamak istedim. Bu yazım SQL Injection'dan korunmak için yapılması gerekenlerinlerin başlıklarından ve ipuçlarından oluşacak. Vereceğim bilgiler güvenilir kaynakların taranması sonucu olgunlaşan veriler. Eğer SQL Injection üzerine detaylı bir araştırma yaparsanız benim ulaştığım önemli noktalara ulaşabilirsiniz. Yazımda yararlandığım kaynaklar:

  • Hacking Exposed Web 2.0: Web 2.0 Security Secrets and Solutions (ISBN: 978-0-07-149461-8) 
  • MSDN
  • http://asp.net


SQL Injection nasıl yapılır?

Veritabanında yaptığınız insert, update, delete gibi komutlara kullanıcı girdisinin müdehale etmesiyle gerçekleşir. Müdehale etmesi derken, saldırıyı yapan kişi veritabanı üzerinde yönetici olarak yapılabilecek bütün işlemleri gerçekleştirebilir. Hatta veritabanını silebilir... SQL Injection' nın verebileceği zararları anlatan onlarca kaynak var. Bu yüzden ben bu kaynakların araştırılması sonucu derlenmiş çözüm başlıklarını vereceğim. Bahseceğim çözüm önerilerini araştırdığınızda yapmanız gerekenleri öğreneceksiniz. Ama araştırmadan önce de bir klavuza ihtiyacınız var. İşte çözüm yolları:

 

1. Querystring Verilerini Kontrol Ettirin

Kullanıcılar sayfalar arasında veri transferi için kullandığınız querystring değerlerini görebilirler. Bunun için bu verileri kontrol ettirmeden SQL komutlarınızın içinde kullanmamanız gerekir. Örnek vermek gerekirse: bir tablonuzdan ID değerini baz alarak "ad" diye bir veri çektireceksiniz. Tablonuzu oluştururken ID değerini integer olarak tanımladınız. ID'nin bir integer mı yoksa tipik bir sql injection cümleciği olan ' OR 1=1 -- mi olduğunu kontrol ettirmeniz gerekir. Bu örnek için ID' nin bir integer mı yoksa string mi olduğunu kontrol ettirebilirsiniz. Böylece string veri türünde kullanıcı querystring'e değer atadığında kodunuz hata verecektir.

Bu verdiğim örnek sadece bir senaryo için geçerli. Güvenlik söz konusu olduğu zaman bütün ihtimalleri göz önünde bulundurarak önem alın ve asla kullanıcı girdilerine güvenmeyin! Querystring'lerden gelen saldırıları önlemek için "sql injection querystring" anahtar kelimeleri ile google da arattığınız zaman bahsettiğim korunma yöntemi ile ilgili bilgiye sahip olacağınızı düşünüyorum.

 

2. Parametreler Kullanın

Yukarıda verdiğim ID örneğinden gidersek anlatacağım husus daha iyi anlaşılır. C# kullanarak iki türli sql komutu yazabilirsiz:

Birinci örnek: "SELECT * FROM tablo_test WHERE ID='" + ID + "'"; 

İkinci örnek:  "SELECT * FROM tablo_test WHERE ID=@ID";

Bu ikinci örnekte @ID diyerek ID' nin değerinin bir parametreye atıyorsunuz. Bunun yapmak ne işinize yarayacak? Eğer birinci örnekteki gibi yaparsanız kullanıcı girdisi olan ID değeri direk olarak SQL komutuna dahil olacaktır. Eğer kullanıcı biraz art niyetli biriyse ve ID değerine ' OR 1=1 gibi şeyler yazarsa bütün kayıtları görebilecektir. Eğer bu SQL komutu bir login kontrolü için yapılıyorsa bunu yazan kişi sisteme giriş yapabilecektir.

Bunu engellemek için ikinci örnekteki gibi parametre kullanmalıyız. Böylece ASP.NET' e şunu söylemiş oluyoruz: Kullanıcıdan gelen değer sadece parametre değeridir, bir SQL komutu değildir. Böylece ASP.NET sayfamızda buna göre davranarak hata verecektir.

Anlattığım hususun kodlarını ve gerçek uygulamasını görmek için "sql injection sql parameter" anahtar kelimelerini aramanız için öneririm.

 

3. Hata Mesajlarını Gizleyin

Saldırı yapanlar genellikle sisteme hata verdirerek veritabanı bilgilerini öğrenmeyi hedeflerler. Eğer sistemin verdiği hataları cömertçe kullanıcılara gösteriyorsanız ASP.NET sayfanız saldıranlara eğitim içerikli hatalar verecektir. Bu verilen hatalar içerisinde tablo ve field isimleri geçtiği zamanda saldıran kişinin yapması gereken şey doğru SQL komutu ile saldıyı yapmak. Bunun olmasını engellemek için web.config dosyasındaki customErrors tag'ı aşağıdaki gibi olmalıdır:

<customErros mode="On" defaultRedirect="Hata.aspx" />

Böylece sistem bir hata verdiği zaman kullanıcıya eğitici ve açık verici hata sayfaları yerine Hata.aspx  sayfasını göstermiş olacaksınız.

Detaylı bilgi için "sql injection customErrors" anahtar kelimelerini öneririm.

 

4. Şüpheli Karakterleri Temizleyin

SQL komutlarınıza  müdehale ederek veritabanınıza zarar verebilecek komutları engellemek için şüpheli karakterleri temizlemeniz gerekir. Bazı şüpheli karakterler:

"\"", "\\", "/", "*", "'", "=", "-", "#", ";", "<", ">", "+", "%"

Özellikle querysting değerlerinde bu temizlemeyi yapmanızı öneririm. Fakat belirttiğim gibi kullanıcı tarafından gelen bütün girdiler için yukarıda bahsettiğim önlemleri almanız gerekmektedir.

 

Sonuç

Eğer web üzerine uzmanlaşmak istiyorsanız bu söylediğim önerilere kulak vermenizi öneririm. Kullanıcılara yaptığınız uygulamaları açmadan önce sql injection saldırılarına karşı bu önlemleri almazsanız ileride telafisi olmayan sonuçlarla karşılaşabilirsiniz. Bu yazımda sql injection saldırılarına karşı alınabilecek önlemlerin ipuçlarını vermeye çalıştım. Umarım sql injection önlemlerini öğrenirken bu yazı sizlere yol gösterici olur. Başka bir güvenlik yazısında buluşmak üzere...

 



powered by discountasp.net

Ne yapıyorum?

Microsoft yazılım araçlarını kullarak eğitim sektörüne yönelik web tabanlı uygulamalar geliştiriyorum.

Örnekleri az olan konsept projelerin geliştirilmesinde aktif görev alıyorum.

Proje Yönetimi, Yazılım Yönetimi ve Web Güvenliği üzerine çalışıyorum.

Calendar

<<  Eylül 2010  >>
PaSaÇaPeCuCuPa
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

View posts in large calendar

Anahtar Kelimeler