ApplyBAU Nedir ve Nedendir?

ApplyBAU

Selam olsun herkese. Başlıktaki gibi konu ApplyBAU 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.

ApplyBAU 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ı” ApplyBAU 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. ApplyBAU 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. ApplyBAU yu o gün öğrenmem bende değiştirdiği çok şey oldu.

ApplyBAU ile Tanışma - 1

ApplyBAU ile Tanışma - 2

ApplyBAU 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 :)

Ücretsiz 1 Aylık 50 USD’lik Azure Pass Hediye Ediyorum

Windows Azure

Geçen günlerde Microsoft Türkiye Blog da duyurusu yapılan Öğrenciler için Windows Azure dan haberiniz vardır. Dreamspark ile aldığınız Azure hesabınız sadece Web Site ve MySQL db vermektedir. Yani WordPress kurarsınız bu kadar. Bildiğim kadarıyla Custom Domain bağlayamıyorsunuz. Baya bir kısıtlı yani.

Öğrenciler için Windows Azure baya bir sıkıntı bir durum. Lise öğrencisi için daha da vahim. Eğer kredi kartınız yok ise 1 aylık deneme sürümü alamıyorsunuz. Windows Azure a kayıt olamıyorsunuz. Aynı zamanda kredi kartı ile devam ederken kullandığınız servisleri kullanmaya devam ederseniz -bu işlem genellikle bilinçsiz kullanım ve her gelene yes demekten oluyor 12 adayı da öyle kaybetmiştik :)- kredi kartınızdan bu kullandığınız servislerin kullandıkça öde kafasıyla ücreti sizden acımadan alıyor.

Öğrencisiniz ve Windows Azure u gönül rahatlığıyla test etmek mi istiyorsunuz? Kredi kartı olmadan şu Azure neymiş demek mi istiyorsunuz? Aşağıdaki formu doldurun size bir iyiliğim var :)

1 aylık 50 USD lik Azure Pass dağıtıyorum. Bu aralar baya bir bol. Öğrencilerin Azure ile tanışması, uygulamalarını hızlı bir şekilde geliştirmek ve startup çıkışlarına yardım için bunu dağıtıyorum. Herhangi bir kuruma bağlı değilim. Microsoft ile alakam bile yoktur. Microsoft adına veya bir bağlantı sayesinde bu kodları dağıtmıyorum. Anlayacağınız hiç kimseye bağlı değilimdir.

Sizden ricam Twitter ve Youtube dan takip etmenizdir. Azure ile ilgili yayınlayacağınız teknik yazılar ve uygulamalarınızı da bana link olarak atarsanız sevinirim. Aşağıdaki formu doldurup Azure Pass talep edebilirsiniz.

Final Dershanesi Web Sitesi ve Sunucu Açığı

Final Dershanesinin Web Sitesinde bulduğum açık ile başlayan serüveni anlatacağım.

Açıkçası bu kadar ciddi bir açık ve kritik bilgilere erişeceğimi düşünmüyordum. Öncelikle web sitelerinde bir Injection açığı buldum. Bu açık üzerine SQL Server ın master kullanıcısı ‘sa’ nın şifresini kırmayı başardım. Artından bu bağlantı üzerinden Server üzerinde komutlar çalıştırmaya başladım ve bunun üzerine bir kaç bilgiyi temin edebildim. Sunucu hakkında tüm bilgileri komutlar yardımı ile aldıktan sonra sunucunun uzaktan bağlantıya erişilebilir olduğunu gördüm ve Administrator hesabının şifresini kırdım ve sunucuya tamamen erişebiliyorum. Sunucu üzerinde final dershanesi ve daha bir çok sitesi mevcuttur. Bu siteler arasında en kritik site FinalShop olmuştur. İçerisinde kredi kartı ile ödeme gibi bir çok işleve sahip olan sitedeki tüm kart bilgileri tehlikededir.

Bu açıkları Final dershanesinin mail adreslerine sunucu üzerinden attım. Sunucu da tüm maileri ve mail trafiğini görebiliyorum fakat kimse bunu kontrol etmedi ve etmiyor. Sosyal Medya üzerinden de belirttim fakat lise öğrencisi olduğum için kaideye almadılar ve bende böyle bir video ve blog yazısı ile onlara ne kadar ciddi olduğunu belirtmek isterim.

Aşağıda açık ile ilgili video mevcuttur.

Biraz da eğlence olsun diye bir kaç şey ekledim :) İnceleyebilirsiniz…