Visual Studio Bower Kullanımı

Merhabalar,

Cross Platform mobil uygulama geliştirmek ve bu alanı daha da genişletmeye konusuna takıntılı hale geldim. İleride yazacağım yazılarda sıkça kullandığım bir araç olan bower dan bahsedeceğim. Visual Studio ile bower nasıl kullanılır kısaca bir bakacağız.

Bower Nedir?

Bower, Front-End Developerların çok sevdiği kütüphaneleri kolayca bulmanız, kurmanız, güncellemeniz ve yönetmeniz için hazırlanmış bir araçtır. Bulabileceğiniz kütüphaneler Angular, JQuery, React gibi JavaScript kütüphaneleri olmakla birlikte CSS kütüphaneleri de bulabilirsiniz. Tam bir front-end developer aracı diyebiliriz.

Visual Studio ile Nasıl Kullanılır?

Visual Studio’da Bower kullanmak, bower ile kütüphane kurmak için güzel bir arayüz hazırlanmış. Yapı Nuget Package Manager tarzı fakat burada bower üzerinde bulunacak kütüphaneleri yönetiyorsunuz. ASP.NET Core 1.0 ve Apache Cordova da gördüğüm güzel ve kullanışlı bir arayüz. CLI (Command Line Interface) üzerinden komut çalıştırmadan arayüz üzerinden halledebiliyorsunuz.

Visual Studio Bower

Visual Studio’da Solution Explorer üzerinde Dependencies in altında Bower ve NPM mevcuttur. Bower’a sağ tıklayarak Manage Bower Packages… tıkladığımızda Nuget Package Manager tarzında bir arayüz karşılıyor.

Bower Manager

Bower Manager ı açtığınızda sizi kurulmuş kütüphaneler karşılamaktadır. Browse bölümünde istediğiniz front-end kütüphanesini aratıp kolayca kurabilirsiniz. Kurulmuş kütüphaneyi silebilir veya güncelleme yapabilirsiniz.

Bower kütüphaneleri kurulduğunda bower_compenents klasöründe toplanır fakat projenizde başka yere almak istiyorsunuz. Ben bunu daha çok Apache Cordova projesinde yaşıyorum. Sebebi de şu. Kütüphanelerin www klasöründe olması gerekir. Bower Manager dan kurup klasörü www taşıdığınız zaman Bower Manager ın herhangi bir anlamı kalmıyor. Bower Manager kütüphanenin kurulmamış veya hasar görmüş şeklinde algılamaktadır. Bower manager dan indirdiğiniz kütüphaneleri istediğiniz bir klasörde toplamak için birkaç ayar gereklidir.

Projenize sağ tıklayarak Add > New Item bölümünden Text File ı seçelim ve dosya ismine .bowerrc olarak yazalım. Projemizin ana dizinine eklemeliyiz ve aynı zamanda dosya ismi de çok önemli. Bower manager bu dosyayı okuyarak ayarlarını yapıyor.

Oluşturduğumuz dosya içerisine yukarıdaki kodu yazdığımızda Bower Manager belirtilen klasöre otomatik indirme işlemi yapacaktır. Eğer kütüphaneleri download ettiniz ama nereye indirmesi gerektiğini ayarlamadınız. bowerrc dosyasını ekleyin ve ardından bower a sağ tıklayıp Restore Packages e tıkladığımızda otomatik olarak belirlediğiniz klasör içerisine taşıyacaktır. Ardından istediğiniz gibi kodlamaya devam edebilirsiniz 🙂

Sonuç

Front-End Developerlar Visual Studio üzerinde çalışırken projelerini yönetmelerini sağlayacak araçları kullanarak sağlıklı bir şekilde kod yazabilecek ve projelerini yönetebilecektir. Benim açımdan ise CLI i açıp bower kütüphanesini download etmekle uğraşmak yerine direk Bower Manager üzerinden istediğim kütüphaneyi arayıp rahatlıkla kuracağım. Bu tarz kütüphaneler sürekli güncelleme alıyor ve bu updateleri takip etmek benim için problem olduğu için Bower Manager üzerinden kolayca update edebileceğim.

Uzun zamandan sonra tenik yazı yazmayı özlemişim.-Teknik yazıya yakın diyelim- İyi kodlamalar dilerim 🙂

indir.com Mobil Uygulama Yarışması

indir.com Mobil Uygulama Yarışması

indir.com tarafından 2014 ve 2015 senelerinde düzenlenmiş ve bu sene de düzenlenen Mobil Uygulama Yarışması na sizi davet ediyorum. Ödülü o kadar cazip bir ödül ki insan katılmadan duramıyor. “Nedir ödül?” derseniz Silikon Vadisi’ne bir bilet kazanıyorsunuz.

Bu sene benim de katılacağım bir Mobil Uygulama yarışması. Geçen seneden üç arkadaşım katılmış ve ilk 10 a kadar gelmişlerdi. Kadircan, Tuncay ve Oğuzhan “O mu? Bu Mu?” uygulaması ile liseli öğrenci olarak gerçekten güzel başarı sağladılar. Geçen sene ben sınavlara ve TÜBİTAK projesine hazırlandığım için bu tarz yarışmalara hiç girme fırsatım olmamıştı. Bu sene kaçırmayacağım. Ekibimle bu yarışmaya katılacağım.

Kurallar Nelerdir?

Ekibiniz maximum 3 kişiden oluşabilir. iOS, Android veya Windows Phone uygulaması geliştirebilirsiniz. Konuda serbestsiniz. Herhangi bir kısıtlama yapılmamaktadır. Uygulamanız yarışma dahilinde ki tarihlerde yayınlanması gerekir.2 sene önce yayınlanmış uygulama ile başvurmaya kalkışmayın 🙂 Genel olarak bu. Yaş sınırlaması olmaması bizim gibi liselilere en güzel sağlanan fırsat diyebilirim. Bir çok yarışma ya üniversite öğrencisi ya da 18 yaşından büyük olma gereksinimini taşıyor. Liselilere bir fırsat verin bak bakayım nasıl yazıyor 🙂

Şimdiden kod yazmaya başlayanları görüyorum. Eee durma bence. Silikon Vadisi var ucunda 🙂

Detaylar için : http://www.indir.com/yarisma/

Apply BAU Nedir ve Nedendir?

ApplyBAU

Selam olsun herkese. Başlıktaki gibi konu Apply BAU Nedir? Beni tanıyanlar/takip edenler bilir. Malumunuz Üniversite sınavlarına hazırlanıyorum. Hani şu optiği doldurarak sınava girdiğinizden var ya. -Teknik olarak onu ben doldurmuyorum. Benim yerime görevli dolduruyor aslında. Yoksa o mu benim yerime üniversiteye gidecek?- Yetenekli olduğu alan ile ilgili istediği bölüme gitmenin kısa bir yolu var. İşte size bundan bahsedeceğim.

Apply BAU Nedir?

Konuyu az çok sezdiniz. Sınav sorunu, üniversite derdi. Bu dertten kurtulmak içinde kısayoldan bahsedeceğim. Bahçeşehir Üniversite’sinin kendisine özgü hazırladığı ve Türkiye’de tek olan bir “Yetenek Bursu Programı” Apply BAU adında gerçekten harika program oluşturmuşlar. Sistem şöyle işliyor. Sınava hazırlanıyorsun, istediğin bölüm ile ilgili yeteneklerin var fakat sistemin zorladığı sınava çalışma, at gibi koşturmaktan ve her gün “Abi benim böyle yeteneklerim var ama bu zalım sistem bize engel oluyor” sözleriyle bir günün daha geçenlerin başvurduğu bir program. Apply BAU sitesinden başvuruyorsun. Kendini ve hayallerini anlatıyorsun. Bunu ilgili kişiler okuyor ve diyor ki “Bu çocuk bu kadar burs hak ediyor” şeklinde burs kazanıyorsun. Bu burs ile de üniversiteye kayıt oluyorsun fakat önemli noktayı atlamayalım, istediğin bölümün ÖSYM Bursu olmayan (burssuz olanı) kazanman gerekiyor. Kazandıktan sonra üniversite kaydını yaptırırken programdan gelen “Kabul Mektubu” nu götürüyorsun ve hangi bölümden ne kadar burs hak ettiysen kayıt oluyorsun.

Peki benim nasıl haberim oldu? Çok ilginç bir olay ile aslında haberim oldu. Kıvanç (Kemal Kıvanç Bakdı) ile bir gece facebook üzerinden sohbet ediyoruz bir yandan da kendi projelerimize kod yazıyoruz. Dert açıldı üniversiteden ve genel üniversite derdi konuşması yapıyoruz. Kıvanç’a “… ya keşke bizim gibi kişiler için özel bir sınav vs olsa bu konularla ilgili ne bilim, proje yapanları başaranları üniversiteye direk alsalar felan…” mesajı attım ve bana o güzel mesajı attı. O gün sabaha kadar yatamamıştım. Apply BAU yu o gün öğrenmem bende değiştirdiği çok şey oldu.

Apply BAU ile Tanışma - 1

Apply BAU ile Tanışma - 2

Apply BAU ile Tanışma - 3

Bu tarz programdan sınava hazırlanan öğrencilerin haberdar olması gerekir. Yaşıtlarımda olan herkese bu programı duyurmak isterim. Bilgi paylaştıkça güzeldir ne de olsa 🙂

Başvurmak ve daha fazla bilgi için web sitesini adresini ziyaret edebilirsiniz.

Azure Powershell ile Azure Account Yönetimi

Windows Azure

Windows Azure kullanıcıları, Azure portal üzerinden hizmetlerini oluşturur ve yönetir. Snearyolara göre değişiklik gösteren durumlar oluşabilir. Azure portalına erişmeden Azure hizmetlerini hızlıca yönetmeniz durumunda Windows Azure bunun için bir çözüm üretti. Azure Powershell veya Azure CLI (Command Line Interface) ile Azure hizmetlerinizi yönetebiliyorsunuz. Bu yazının sonunda “Manyka mısın normal insanlar gibi Azure Portal’dan gör işini” diyenler olabilir. Öncelikle “Powershell nedir?” biraz ona değinelim ardından da Azure Powershell konusuna geçeceğiz.

Powershell Nedir?

Microsoft, geliştirdiği işletim sistemlerinde bir görsel arayüz sunarak kullanıcıların işlemlerini kolaylaştırmayı sağlar fakat Sistem Uzmanları bu durumdan çok memnun değillerdir. Sistemin dibine kadar erişmek, yönetmek ister. Sistem uzmanlarının işi derinlerde olduğu için birtakım ihtiyaçları vardır. Server yönetimini yaparken Sistem Uzmanları MS-DOS üzerinden işlemlerini tam anlamıyla gerçekleştiremiyordu, yetersiz kalıyordu. Bunun için Microsoft, Powershell i ortaya çıkardı. Powershell ile sisteme tamamen hükmedebilir hale geldi. Aynı zamanda Powershell ile Script yazabilmeniz sayesinde Sistem Uzmanlarının sürekli çalıştırdığı kodları bu şekilde programatik hale de getirebiliyorsunuz.

Azure Powershell Nedir?

Azure Powershell, Azure hesabınızın içerisinde bulunan Subscriptions a bağlı olan hizmetleri yönetmenizi sağlar. Azure Powershell i kullanabilmeniz için öncelikle indirmeniz ve kurmanız gereken araçlar var.

1. Azure Powershell İndirin

Gerekli aracı i indirmek için tıklayınız… (27.9 MB)

2. Azure Powershell Kurulumu

Kurulumda herhangi bir konfigrasyon gerekmiyor. MSI Installer ın çalışır olması yeterlidir.

Azure Powershell ile Hesap Bağlantısı

Azure Powershell ile Azure hesabınıza bağlanma iki farklı teknik kullanılarak bağlantı sağlanabilir. Bunlardan birisi Azure Accountunuzdan Profile dosyası alnıp bağlantı sağlanması, diğeri ise Azure Powershell üzerinden gelen Oturum açma ekranı ile hesaba bağlanabilirsiniz.

Bağlanma methodlarını anlatmadan önce Windows Powershell ISE yi açalım.

Powershell ISE

Yönetici olarak çalıştır demeyi unutmayalım. Herhangi bir yetki durumundan kurtulmak için ideal çözüm 🙂

Powershell ISE Main

İlk açanlar için böyle bir ekran gelecektir. Powershell Script bölümünü açarak hazırlığımızı tamamlayalım

1. Method

Bu method Azure üzerinden Publish Profile dosyasını download edip, Azure Powershell üzerinden Import ederek bağlantı kurulan yöntemdir. Öncelikle bu adresten Publish Profile dosyanızı edinebilirsiniz Eğer Azure hesabınıza giriş yapmadıysanız, Azure hesabınıza giriş yaparak dosyayı otomatik olarak indirebiliyorsunuz.

Dosyayı indirdikten sonra Powershell üzerinden bunu import etmemiz gerekecek.

Powershell üzerinde bu kodu çalıştırdığımızda Publish Settings dosyasını aktaracak ve artık Azure Accountunuz üzerinden işlemleri gerçekleştirebileceksiniz. Biraz daha programatik hale getirmek istersek

Bu şekilde bir Powershell Script yazalım ve kaydedelim. Ardından da aşağıdaki kodu çalıştıralım

Böylelikle daha programatik hale getirmiş olduk. Bu tarz scriptler hazırlayarak geliştirdiğimiz uygulamalarda bu scriptleri çalıştıp işlemleri hızlıca gerçekleştirebiliriz.

2. Method

Bu method aslında en basit teknik fakat bunu Web App lerde kullanmak sıkıntılı gibi gözüküyor. Web app içerisinde test etmedim fakat burada açılan bir Login ekranından dolayı sıkıntı çıkaracaktır.

Azure Powershell Login

Karşınıza çıkan ekranda login olduğunuzda Azure abonelikleriniz listeleniyor. Bundan sonra Azure üzerinde işlemlerinizi yapabilirsiniz.

Powershell ile Azure WebSite Oluşturalım

Azure Account ekledikten sonra artık işlemlere başlayabiliriz. Örnek olarak bir Azure Web Sitesi oluşturalım. En basit düzeyde kod ile Web Site oluşturmak istersek

çalıştırdığımız bu kod sonucunda aşağıdaki gibi bir çıktı alıyoruz.

Powershell Web Site

Sonuç

Evet yazının sonuna gelmiş bulunmaktayız. Bu yazı sonucunda Powershell üzerinden Azure Accountumuzu yönetebildiğimize göre artık sizde Hosting şirketi kurabilirsiniz 🙂 Azure tabanlı hosting şirketi kurmak ilginç bir fikir. Dinamik bir şekilde uygulamanızı kullanırken uygulama içerisinde hizmetlerinizi kullanabilirsiniz. Örneğin web sitenizin yönetim panelinden Web siteyi yükselt dediğinizde Web sitenizi 1 sunucudan 2 sunucuya çıkarabilecek bir sistem düşünülebilir veya web sitenizdeki yoğunluğu hesaplayarak bu işlemi otomatik gerçekleştirebilirsiniz. Tabi bu o anki senaryoya göre daha mantıklı yerlerde kullanılabilir 🙂

IEEE Çukurova Günleri: Yazılım ve Teknoloji Zirvesi #YTZ15

IEEE Çukurova

IEEE Çukurova Öğrenci Kulübü tarafından 1-2 Aralık’ta düzenlenen muazzam etkinlikte bende vardım. Adana içerisinde olan bu tarz etkinlikleri kaçırmamak istiyorum. Gördüğüm gibi kaydımı yaptırdığım etkinliklerden birisi. Webtures, Scorp, n11, Microsoft, Pisi Linux, IBM, BGA ve Shiftdelete.net ten gelen konuşmacılar vardı. Hepsi birbirinden iyiydi. Bir kaç oturuma katılamadım malesef fakat etkinlik genel itibariyle süperdi.

Açılış konuşması ile başlayan etkinlikte başlangıçta IoT, Machine Learning, VR (Sanal Gerçeklik), Artificial Intelligence (Yapay Zeka) ve BigData dan bahsedildi. Gerçekten başalngıç için hiç beklemediğim konulardan bahsedilerek açılış yapıldı. Gerçekten süper başlangıç diyebilirim. Bu konular son dönemde Türkiye’de yeni yeni anlam kazanmaya başladı. Aslında bu teknolojilerle, alanlarla zaten çalışma yapan ilgilenenler vardı fakat yaygınlaşması daha çok önemli bir durum. Açılış konuşmasıyla gerçekten enerjiyi yüksekte tuttu.

Ardından Webtures ve SEO Hocası Blogun kurucusu Kaan Gülten ile SEO (Sakarya Eczacı Odası) konusunu konuştuk. SEO çalışmaları ve Google Algoritmalarından bahsedildi. E-Ticaret de SEO nun öneminden, Dijital pazarlamanın büyük bir payı SEO dan geldiğinden bahsedildi. Çok güzel bir konuşma ile güzel hediyeler verildi. (Ben alamadım)

Scorp’tan Batu Uğrasız ile Scorp girişiminden bahsedildi. Etkinlik yaş ortalamasına bakılırsa aynı yaşlarda veya aynı kuşakta olduğumuz için etkinliğin en dinamik geçtiği oturum diyebiliriz. Girişimciliğin ne kadar berbat, sıkıntılı ve işkenceli olduğunu anlattı. Bu konuda görüşüm ise mücadele etmeden bir şey kazanmak olmaz. Girişim yapacaksan zaten mücadele etmeyi seven adam olmak gerekir. Neyse ilginç bir oturum oldu. Scorp u bilen ama tek tük kullanan öğrenci topluluğu olduğumuz, bu oturumda anlaşıldı.

1 Aralık günündeki diğer Shifdelete ve Youtube Fenomeni oturumlarına katılmadım. 2 Aralık oturumları başladı ve ilk oturum Pisi Linux oldu. Biraz geç geldiğim bir oturum oldu fakat Pisi Linux u takip edenlerden birisiyim. Pisi Linux yapımcıları gerçekten ilginç ve iyi insanlar. Neden iyi insanlar diyorum biraz bahsedeyim. Bu takım öncesinde Pardüs (Türkiye’nin İşletim Sistemi (!)) çekirdeki takımında idilerdi. Pardüs den ayrıldılar ve Pardüs ile bir çok sorunları oldu. Doğru bulmadıkları olgulara karşı çıkan insanlar olan bu takım farklı farklı işleri varken bir işletim sistemi üzerinde zamanlarını ayırıyorlar. Gerçekten güzel bir şey bu. Pisi Linux u incelerseniz, Pardüsten daha hızlı ve kat kat daha iyidir. Bu yüzden çok takip ettiğim bir takımdır.

n11’den Ozan Akat ile markalaşma, büyüme konusunda bilgiler edindik. Çok ilginç hikaye üreten kişilerden birisi olduğunu gördük. Her geçen gün bir girişim gördüğümüzde daha çok anlatıldığında bir hikayenizin olması gerektiğini öğrendim. Sallamasyon veya gerçek farketmez. Olması gerektiğini anlamış oldum.

Microsoft’tan Daron Yöndem ile hızla devam ettik. Konuşma esnasında ilginç şeyler oldu. 1 saat Daron hocaya yetmedi o da ayrı bir konu.Azure dan bahsetti. Daha çok Azure yerine direk Cloud dan bahsetti. Açıkçası Amazon’un reklamını Azure dan daha fazla yaptı da diyebiliriz. Aslında orada Cloud platformlarının hemen hemen hepsi aynı olup aralarında avantaj ve dezavantajları olduğunu gösterdi. Konuşma ardından IBM oturumu var iken Daron hocamız ile dışarı da sohbete devam ettik. İlginç ve komik şeyler oldu. IBM oturumu o arada bitti.

Son oturum olarak BGA’dan Yahya Tanışık ile bitirdik. Yazılım güvenliği hakkında konuşma oldu fakat teknik olarak hard core giden tek oturumdu. Ataklardan bahsedildi ve demolar yapıldı. Katılımcıların algısı dışına taştı belli bir noktadan sonra. Buffer Overflow dan sonra hemen hemen herkesin bağlantısı koptu. Kullanılan teknikler bildiğim tekniklerdi fakat hepsini bir arada görmek benim için ilginç oldu. Beklemediğim bir teknik oturum oldu diyebilirim.

1-2 Aralık bu şekilde sona erdi. Açıkçası böylesine güzel bir etkinlik olabileceğini tahmin etmemiştim. Güzel etkinlik olur derken muazzam oldu bu etkinlik. IEEE Çukurova Öğrenci Kulübü ve emeği geçenlere teşekkürler. Böyle bir etkinlikle bir araya topladığı için. Bu tarz etkinliklerin olmasını ve artmasını bekleriz 🙂

Apache Cordova AngularJS Windows Platform Sorunu

Apache Cordova - AngularJS

Bundan bir kaç yazı öncesinde Apache Cordova, AngularJS gibi Cross Platform ve Frameworkler ile app geliştirmeden bahsettim ve örnek uygulama yazmıştım. Android emulator üzerinden çok iyi bir şekilde çalışsa da Windows Platformlarında aynı şekilde yürümüyor.

iOS’de denemedim fakat AngularJS in iOS üzerinde hata vereceğini sanmıyorum. İnternet üzerindeki kaynaklardan incelediğimde genellikle iOS ve Android için AngularJS öneriliyor. Windows platformlarında AngularJS kullanımı ile ilgili kaynaklar az. Genellikle WinJS üzerinde çalışılmış. AngularJS gibi kütüphanelerin Windows Platformu üzerinde sorunsuz çalışması için bir kaç kod ile ayarlamamız gerek. MSDN Blog da okuduğum bir yazı ile sorunun çözümünü vermiş. Peki ben niye bir yazı ile dillendiriyorum? Sebebi ise Apache Cordova ya yeni başlayanlar “Windows platformunda bu neden çalışmaz anlamıyorum ki” bu sözleri kullanmadan “Çalıştı be” demelerini sağlamak içindir. Neyse hadi başlayalım.

Birden fazla sayfalarla çalışan bir Cross Platform App geliştirirken yaşanan sorunlardan birisi oluyor. Başka bir sayfaya bir parametre gönderirken veya aldığınız verileri döngü içerisinde çıkarırken href, src taglarına yerleştireceğiniz url tanınmamasından kaynaklı bir hata oluşturuyor.

Nasıl Bir Tanımlanmama Problemi Oluyor? Url’leri oluştururken unsafe:// ile başlayan bir url yapısı oluşuyor ve uygulama bunu tanımadığı için bunu çalıştırabilecek bir Windows uygulaması seçmemizi istiyor. Bu derleme esnasında URL lerin tanınmamasından kaynaklı bir problemdir. Sorunun çözümü ise AngularJS modülünü tanımladığımızda AngularJS derleme esnasında bazı ayarlamalar yapmak gerek. Aşağıda bununla ilgili örnek bir kod mevcut.

Bu şekilde uygulamanızı çalıştırdığınızda artık herhangi bir sorun olmayacaktır fakat bu seferde diğer platformlarda çalışırken bazı sorunları beraberinde getirecektir. Bu yüzden bunu sadece Windows platformları için ayarlamamız gerek.

Apache Cordova pluginlerinden Device Plugin i öncelikle kurmanız gerekecektir. Ardından kodu aşağıdaki gibi düzenlemeniz gerekecektir.

Yazdığımız kod sadece Windows platformları için artık geçerlidir. Böylelikle diğer platformlarda bir sorun oluşturmayacaktır. Umarım yararlı bir yazı olmuştur. Herhangi bir yanlış bigi verirsem düzeltmenizi isterim ve Apache Cordova ile ilgili sorunlarınızı mail veya yorum olarak alabilirim.

İyi Kodlamalar 🙂

Kaynak: http://blogs.msdn.com/b/msdn_answers/archive/2015/02/10/running-cordova-apps-on-windows-and-windows-phone-8-1-using-ionic-angularjs-and-other-frameworks.aspx

ASP.NET MVC CSRF/XSRF Saldırı Koruması

ASP.Net Eğitim

Web uygulamalarınızı kodlarken çok hızlı yazarak bir çok şeyi gözden kaçırırız. Bu kaçırdığımız en önemsiz gözüküp çok baş ağrıtan açıklardan birisi olan CSRF-XSRF (Cross Site Request Forgery) açıklarıdır. Bu açıkların genel olarak oluştuğu noktalardan birisi web uygulamanızda ki formlardır. Oluşturduğunuz formlar ve formlardan gelen isteklerin gerçekten istenilen noktadan gelip gelmediğini kontrol etmemekle başlar.

Bu açığın ne tarz zararları var. Low level den High level e kadar sorunlar oluşturabilir. Bu açığı nerede bıraktığınız ile ilgilidir. Basit bir örnek verirsek, dışarıdan bir mail ile gelen linke tıkladınız ve açık olan oturumunuzda ki hesap üzerinden otomatik işlem yapılmasına sebep olabilir. Linke tıkladığınızda giden isteği doğrulamanız gerekmektedir. Bu isteği kimin yaptığını öğrenmek için kendimize has oluşturmamız gereken bir şifre, anahtar kelime olmalıdır.

Peki ASP.NET MVC uygulamalarımızda nasıl bunu engelleyeceğiz? ASP.NET MVC Framework ünde çok kolay bir yolu var. Farklı yerlerde birer satırlık kod ile bu sorun çözülüyor. Şaşırdınız değil mi 🙂 ASP.NET MVC Framework ünü geliştiren abilerimiz bunu bizim için düşünmüşler. Şimdi gelelim nereye ne yazmamız gerekiyor ona bakalım.

View sayfamıza bir form etiketi içerisinde kullanacağımız bir satırlık kod var. Bu kod kendine has bir token üretiyor ve bunu istek olarak gönderdiğinde Action içerisinde isteğin doğru yerden geldiğini doğrulayarak işleminizi gerçekleştiriyor. Ben bir şifre sıfırlama sayfası üzerinde bunu kullandığımı düşünerek aşağıdaki View kodunda örneği göreceksiniz.

Gördüğünüz bu kod sayfanızda bir gizli input oluşturuyor.

CSRF Token

View içerisinde oluşturduğumuz token, action içerisinde doğrulanması gerekecek. Controller  içerisinde oluşturduğunuz action üzerine ValidateAntiForgeryToken sihirli kelimesini kullanıyoruz. HttpPost ile veri alan action örneğini aşağıda görebilirsiniz.

Bu sihirli kelime bir attribute ve bu otomatik olarak istek yollandığında bu doğrulama işlemini gerçekleştiriyor ve action içerisindeki kodlar çalışmaya başlıyor. Böylelikle token üretilmemiş formlardan gelen istekler veya dışarıdan gelen istekler otomatik olarak saf dışı bırakılıyor. Böylelikle CSRF/XSRF ataklarından uygulamamızı savunmuş oluyoruz.

Evet bu yazımla da benden bu kadar iyi kodlamalar 🙂