C# Asenkron Hataları

C# ile asenkron operasyonlar çoğu zaman işimize oldukca yarıyor fakat bazı durumlarda asenkron kullanmanın yarardan çok zararı olabiliyor. Aşağıdaki bir kaç maddede dikkat etmeniz gereken bazı maddeleri özetledim.

1-)Await kullanmayı unutmak

Task döndüren asenkron bir methodu çağırdığınızda await kullanmazsanız programınız ilgili satırda beklemeden akışına devam edecektir. Bu durum çoğu zaman istenmeyen sonuçlara yol açabilir.

Console.WriteLine("Before");
Task.Delay(1000);
Console.WriteLine("After");

Bu kodu çalıştırdığımızda program Before yazdıktan sonra 1000ms beklemeden After yazacaktır çünkü 2. Satırdaki async method çağırısında await kullanılmamış. Eğer 2. Satırdaki asenkron operasyon bitmeden kod akışının devam etmesini istemiyorsak çağrının başına await ekleyerek bu durumun önüne geçebiliriz.
Devamını Oku

ASP.NET Core Uygulamasını Heroku ile Ücretsiz Yayınlamak

Bazen uygulamanızı yayınlamanız gerekir fakat elinizde bir sunucu yoktur. İşte tam bu tür durumlar için uygun olduğunu düşündüğüm bir çözümü sizlerle paylaşmak istedim.

Heroku’yu bilmeyenler için kısaca açıklamak gerekirse; uygulamalarımızı kolayca yayınlayabileceğimiz bir cloud platformu python, ruby, nodejs, php.. gibi bir sürü programlama diline doğrudan destek veriyor ve oldukça geliştirici dostu bir platform. dotnet platformuna doğrudan destek vermesede docker üzerinde uygulamamızı yayınlayabiliyoruz. (dahası: https://www.heroku.com/what) Devamını Oku

Nginx ile WordPress ve WooCommerce Caching

Geçenlerde bir arkadaşım e-ticaret sitesi için reklam verdikten sonra sitesinin trafiği kaldıramayıp çöktüğünü söyledi. Arkadaşım sitesinde wordpress ve woocommerce pluginini kullanıyordu. 10 dolarlık vps üzerinde apache2+php+mariadb üçlüsü üzerinden sitesinini yayınlamıştık fakat yükün artmasıyla beraber bu stack sorunumuzu çözmez hale gelmişti. Bende yeni çözümler aramaya başladım.

İlk olarak apache yerine nginx ile değiştirmeyi düşündüm çünkü nginx yapılan testlere göre yük altında çok daha iyi bir performans gösteriyordu. Ayrıca konfigurasyonuda oldukça basitti. Nginx kurulumunu yaptım ve php olarak php’nin en güncel sürümü olan 7.3 sürümünü tercih ettim. Php-fpm’i nginx’in arkasında çalışacak şekilde konfigure ettim.

Artık caching konfigurasyonlarını yazmak için hazırdım. Nginx tarafında bütün istekleri cacheyip sunucu yükünü düşürmeyi hedefliyordum. Önceki stack’e yaklaşık 100-200 anlık ziyaretçi kaldırabilen sunucunun şuanki durumu anlık 2000-3000 kullanıcıya başarılı bir şekilde hizmet verebiliyor.
Devamını Oku

ASP.NET Core 2.2 Uygulamamızı Docker Üzerinde Yayınlamak

Selamlar,
Bu yazımızda bir asp.net core uygulamasını docker üzerinde yayınlama örneği yapacağız.
Ön gereksinim olarak windows, macOS veya linux + docker ce(https://docs.docker.com/install/) kurulumuna ihtiyacımız olacak. Yazının ana konusu olmadığı için docker kurulum aşamalarını es geçerek direk konuya giriyorum.

Bu yazıda örnek olarak bir linux dağıtımı olan debian 9’u (https://www.debian.org/CD/http-ftp/) kullanacağım.
Devamını Oku

CSS ile Keylogger Yapılabilir mi?

Geçenlerde güvenlikle alakalı blogları gezerken karşıma çıkan bu enteresan örneği sizlerle paylaşmak istiyorum. Çalışma mantığı şöyle her karakter için font-face komutunun unicode-range özelliği kullanılarak tanımlama yapılıyor bu sayede örneğin ‘a’ karakteri için spesifik bir font yükleme isteği oluşuyor bu sadece her karakter için bir istek oluşacağı için bunları loglayan bir servis sayesinde tuş vuruşlarını loglamak mümkün hale geliyor. Tabi her font bir kez yükleneceği için bir harf için bir kez istek oluşacağından tam bir loglama bu kod için pek mümkün gözükmüyor fakat mantığı hoşuma gittiği için paylaşmak istedim.

https://github.com/ismkdc/csskeylogger/blob/master/keylogger.html

Windows Sistemlerde Parolası Bilinmeyen Oturuma Bağlanma

Geçenlerde bir sunucumuzda kurulu bir sql server’e bağlanmam gerekiyordu. Sql server administrator hesabıyla kurulup yapılandırılmıştı. Benim login olduğum kullanıcı ise farklı bir kullanıcıydı fakat admin yetkisindeydi. Bu hesapla sql server’e login olmayı denediğimizde başaramadım. Ardından bu sorunu aşmanın yollarını aramaya başladım.

İlk olarak aklıma parola değiştirme yöntemi geldi. Admin yetkisine sahip olduğum için administrator isimli kullanıcının parolasını değiştirip yeni parolayla login olucaktım. Fakat bu yöntem işimi görmüyordu çünkü bu kullanıcıyı birden fazla kişi kullandığı için parolası eski halinde kalmalıydı. Başka çözümler aramaya başladım ve task manager ile o oturuma bağlanabileceğimi gördüm fakat benden administrator isimli kullanıcının parolasını istiyordu.

Devamını Oku

C# ile Sinema Otomasyonu

Merhaba arkadaşlar, geçenlerde arşivleri kurcalarken karşıma lise 3. sınıfa giderken proje ödevi olarak geliştirdiğim sinema otomasyonu çıktı. Yeni başlayan insanların işine yarayabilir diye paylaşıyorum. :)
Hatırladığım bazı özelliklerinden bahsetmek gerekirse; bilet satış, öğrenci ve tam bilet fiyatı ayarlama, online fatura gönderme, fragman oynatma, muhasebe ve raporlama, seans, salon ayarlama ve dahası.. proje içinde ufak bi slayt mevcut orada daha detaylı olarak özellikler var.

https://github.com/ismkdc/Sinema_Otomasyonu

ADEOSecurity IWS17 | CTF Çözümleri

Merhaba arkadaşlar Adeo staj programına öğrenci almak için 13.05.2017 00:00 – 14.05.2017 00:00 tarihleri arası online bir ctf düzenledi.

Bende bu ctf’e katıldım ve kendimce bişeyler yaptım şimdi sizlerle soru çözümlerini paylaşacağım.

Öncelikle sorulara bir göz atalım.

4 web, 3 misc, 1 crypto, 3 system-network, 4 reverse olmak üzere toplam 15 sorudan oluşuyor ctf.

Kırmızı olarak gördükleriniz deneme hakkımı doldurduğum sorular fakat çözümlerini sağladım ve sizlerle paylaşacağım :)

Devamını Oku

Dns Firewall Uygulaması – OrangeDNS

Merhaba arkadaşlar bugün sizlerle geliştirmiş olduğum dns firewall uygulamasını paylaşacağım.

Uygulamayı c# dili kullanarak geliştirdim. Basitçe dns protokolünü kullanarak engelleme yönlendirme loglama işlemlerini yapıyor. Dns server windows form, kullanıcı arayüzü ise asp.net mvc ile geliştirilmiştir. Detaylı anlatım için çektiğim videoyu izleyebilirsiniz. Projeye ulaşmak için aşağıdaki github linkini kullanabilirsiniz.

Github: https://github.com/ismkdc/OrangeDNS

Uygulama kullanımı hakkında döküman: http://s9.dosya.tc/server2/fcpnij/Orange_DNS.pdf.html