Aramayan Bulamaz
×
Sorgu arama sorgusuna ait içerikleri görüntülemektesiniz.
MongoDB ve NoSQL Kavramı Nedir?

MongoDB bir NoSQL veritabanıdır. NoSQL "not only sql" olarak da açılabilir, yani SQL değil anlamındadır. Çünkü çalıştırılan sorgular bir MySQL ya da MsSQL sistemlerinde alışmış olduğunuz sorgular değiller.

NoSQL Sistemlerinin Avantajları Nelerdir?

Okuma ve yazma konusunda diğerlerine göre daha performanslı olabilirler.

Yatay olarak genişletilebilirler. Yani binlerce sunucu küme oluşturarak çalıştırılabilir ve daha büyük veriler üzerinde daha rahat işlem yapılabilir.

Farklı bir çok özellikleri olması sebebiyle programlama alanında kolaylıklar sağlar.

Maliyet olarak diğer veritabanı sistemlerine göre daha avantajlıdır.


NoSQL Sistemlerin Dezavantajları Nelerdir?

SQL bir veritabanı kullanan uygulamanın NoSQL sisteme taşınması ilk aşamada zor olacaktır. Özellikle join kullanan sorgularda düzenleme yapılması gerekecektir.

NoSQL veritabanı sitemleri veri güvenliği konusunda SQL veritabanlarındaki gibi gelişmiş bir yapıya sahip değiller.


MongoDB'de yukarıdaki dezavantajlarda bahsettiğim gibi güvenlik konusunda ilk kurulumda yetersiz kalmakta. Varsayılan olarak kullanıcı adı ve şifre bulunmamakta. Doğrudan sunucu adresini yazarak veritabanına bağlantı sağlanabilmekte. Bu sebeple veritabanı erişimini sunucu dışına kapatmak gerek ve MongoDB konfigurasyonlarını düzenleyerek kullanıcı yetkilendirmesini açmanız gerek. Kurulum ve konfigurasyonları sonraki konumda açıklayacağım.


MongoDB

10gen firması tarafından 2007 yılında başlanan ve 2009 yılında AGPL lisansıyla açık kaynak projesine dönüştürülen bir veritabanı sistemidir. Belge yönelimli veritabanı olarak tanıtılmaktadır. (Document oriented). MongoDB üzerinde oluşturulan her kayıt bir dökümandır. Bu dökümanlar json formatında saklanır.

MongoDB ve alışılagelmiş S

Cryptograph Whois DNS Tools

Merhaba, önceki konumda C# ile whois sorgulamasının nasıl yapıldığını anlatmıştım. Bu konuda da C# ile hazırlamış olduğum whois sorgulaması ve DNS sorgulaması yapabileceğiniz bir uygulamayı paylaşacağım. Uygulamayı hazırlarken Heijden.DNS isimli hazır bir DLL dosyasından faydalandım. Uygulama içerisinde bir alan adının whois sorgulaması yapıldığı sırada aynı anda arkaplanda o sitenin DNS sorgulamasını da yapmakta. DNS penceresine geldiğinizde sonuçları görüntüleyebilirsiniz ve ayrıca IDN alan adları için bir çevirme aracı da mevcut. Uygulamayı aşağıdaki bağlantı üzerinden indirebilirsiniz ve kaynak dosyalarına Github üzerinden erişebilirsiniz.

https://depo.niyazialpay.com/CryptographWhoisDNSQueryTools.rar

C# ile Whois Sorgulama

Merhaba, whois sorgulaması bir web adresinin tescil süresi, kimin adına kayıtlı olduğu gibi bilgilerin öğrenilebilmesi adına yapılan sorgulamadır. Bu işlemi çeşitli whois siteleri aracılığı ile gerçekleştirebilirsiniz veya C# ile bir exe hazırlayarak bu exe üzerinden de sorgulama gerçekleştirebilirsiniz. C# üzerinden bu sorgulamayı yapabilmeniz için sorgulama yapılacak olan whois serverına TCP bağlantısı açılması gerekir. Örnek olarak aşağıdaki komutlar ile birlikte sorgulamayı gerçekleştirebilirsiniz.

TcpClient TCPC = new TcpClient("whois.verisign-grs.com", 43); string strDomain = "niyazialpay.com" + "\r\n"; byte[] arrDomain = Encoding.ASCII.GetBytes(strDomain); Stream objStream = TCPC.GetStream(); objStream.Write(arrDomain, 0, strDomain.Length); StreamReader objSR = new StreamReader(TCPC.GetStream(), Encoding.ASCII); string icerik = Regex.Replace(objSR.ReadToEnd(), "\n", "
"); webBrowser1.DocumentText=icerik; TCPC.Close();

Bu sorgulama şekli ile yalnızca sınırlı sayıda uzantıların whois bilgilerini öğrenebilirsiniz. En sağlıklısı her uzantı için ayrı ayrı whois serverlarından sorgulama yapılmasıdır. Aşağıdaki bulunan kodlar ile birlikte bu işlemi gerçekleştirebilirsiniz.

using System; using System.Text; using System.Net.Sockets; using System.IO; using System.Text.RegularExpressions; namespace Cryptograph_Whois_DNS_Tools { public class whois { private string GetDomainName(string url) { var doubleSlashesIndex = url.IndexOf("://"); var start = doubleSlashesIndex != -1 ? doubleSlashesIndex + "://".Length : 0; var end = url.IndexOf("/", start); if (end == -1) end = url.Length; string domainname = url.Substring(start, end - start); if (domainname.StartsWith("www.")) domainname = domainname.Substring("www.".Length); return domainname; } private stri

PHP Data Object - PDO

PHP de veri tabanına bağlanma ve sorgu çalıştırmayı anlatmıştım.
Klasik veri tabanı bağlantısı mysql_connect() komutu ile yapılıyor, sorgu çalıştırma mysql_query() ile yapılıyor fakat pdo yapısı biraz farklı. PDO php 5.2 den sonra gelen bir veri tabanı sorgu sınıfı, yani nesne tabanlı bir yapı.
En güzel özelliği çoklu veri tabanı desteği olması. Oracle, SQL Server, MySQL gibi farklı veritabanlarına bağlanabilme özelliği sunuyor. Ayrıca kendi içerisinde sql injection koruması olan bir sınıftır.

$db = new PDO('mysql:host=localhost;dbname=veritabanı adı', 'kullanıcı adı', 'sifre'); PDO sınıfını db değişkenine bağlı olarak oluşturduk, sorgularımızı bu sınıfa bağlı methodlar ile yapacağız.

query() methodu genel olarak tüm sorgularda kullanılır.
exec() methodu bilgi girişi, güncelleme, silme gibi veri tabanına değer göndermede kullanılır.
prepare() methodu query() methodundaki gibi tüm sorguları çalıştırmada kullanılır fakat buna ek olarak bir de execute() methodu kullanılır, prepare ile yapılan sorgunun uygulanması için.
fetch() methodu; tek bir sonuç getirmek için kullanılır, query ile çalıştırılmışsa sorgu query den sonra, prepare ile çalıştırılmışsa sorgu execute methodundan sonra kullanılır.

Veritabanından dataların sayılarını getirmek istediğimizde fetch(PDO::FETCH_NUM) kullanılır.

Örnek olarak bir sorgu çalıştırayım, sorguyu query ile yapacağım. $sorgu = $db->query('select * from blog where id=1')->fetch(); Veritabanından id değeri 1 olan konuyu getiren sorguyu yazdık. Bu şekilde de yapabilirdik $sorgu = $db->query('select * from blog where id=1'); $sorgu->fetch(); İkisi de aynı işlemi yapıyor. echo $sorgu['blog_baslik'];
İ

Nmap Nedir - Genel Anlamda Nmap Kullanımı

Nmap, bilgisayar ağları uzmanı Gordon Lyon (Fyodor) tarafından C/C++ ve Python dilleri kullanılarak geliştirilmiş bir güvenlik tarayıcı yazılımıdır. Taranan ağın haritasını çıkarabilir, ağdaki makinalarda çalışan servislerin durumlarını, işletim sistemlerini ve portların durumlarını gözlemleyebilir.
Nmap ile ağa bağlı herhangi bir bilgisayarın işletim sistemi, çalışan fiziksel aygıt tipleri, çalışma süreleri, yazılımların hangi servisleri kullandığı, yazılımların sürüm bilgileri, bilgisayarın firewalla sahip olup olmadığı gibi bilgileri öğrenilebilmektedir.
Tamamen özgür lisanslı yazılımdır (GPL). Matrix isimli filmde de kullanılmıştır.
Kullanım alanları: Herhangi bir ağ hazırlanırken ayarların test edilmesinde. Ağ haritalaması, bakımı ve yönetiminde. Bilinmeyen yeni sunucuları tanımlayarak güvenlik denetimlerinin yapılmasında.

Çalışma Prensibi
Taranılacak olan makinanın ismi girilirse nmap öncelikli olarak dns lookup işlemi yapar, bu aslında nmap fonksiyonu değil, ağı taramak için makinanın ip adresinin bilinmesi gerek ip bilgisini öğrenmek için dns lookup yapar ancak dns sorguları network trafiğinde gözüktüğünden isim ile tarama yapmadan önce ipyi daha farklı yöntemlerle öğrenebilirsek daha iyi olur.
İlk önce hedef makinayı pingler. Eğer ping işlemini iptal etmek istiyorsak -P0 seçeneği kullanılmalıdır.
Varsayılan olarak tam bağlantılı (full connect) TCP bağlantısı kurarak açık port taraması yapar. Full connect bağlantı TCP üzerinde üçlü el sıkışma olarak adlandırlan yöntemdir. Kontrol edilen porta SYN paketi gönderilir, port açıksa sunucu SYN/ACK paketini cevap olarak gönderir. Daha sonra nmap tarafından ACK paketi gönderilir ve bağlantı sağlanır.
nmap 192.168.1.1
Port tespiti yapılan yöntemi değiştirebiliriz. "-sT" parametresi ile son olarak gönderilen ACK paketini iptal edip tam bir TCP bağlantısı sağlamadan tarama yapabiliriz. Bu yöntem ile TCP bağlantısı yarım kaldığı için hedef sistemi