SQL NEDİR?
Bilgileri ilişkisel bir veri tabanında depolamak ve işlemek için kullanılan sorgu tabanlı bir programlama dilidir. Veri tabanındaki bilgileri kaldırmak, değiştirmek, eklemek, aramak, güncellemek, depolamak ve almak için SQL ifadeleri kullanılabilir.
1970’lerde ilişkisel veri modeline dayatılarak ortaya çıkarılmıştır.
MySQL NEDİR?
Oracle tarafından sunulan açık kaynaklı veri tabanı yönetim sistemidir. Kullanmak için herhangi bir ücret ödenmesi gerekmez. MySQL, SQL sorguları kullanan bir ilişkisel veri tabanı programıdır.
NoSQL NEDİR?
NoSQL, verileri toplamak için tablo kullanmayan, ilişkisel olmayan veri tabanlarını ifade eder. NoSQL duyarlı, yoğun kullanımlı uygulamalar için uygundur.
İlişkisel Veri Tabanı Nedir?
İlişkisel veri tabanı, birbiriyle ilişkili veri noktalarını depolayan ve bunlara erişim sağlayan bir veri tabanı türüdür. Tablolar aracılığıyla daha kolay okunabilir, kullanılabilir ve ilişkisel bir biçimde verileri depolar.
İlişkisel Olmayan Veri Tabanı Nedir?
İlişkisel olmayan veri tabanı, çoğu geleneksel veri tabanı sisteminde bulunan satır ve sütunların tablo şemasını kullanmayan bir veri tabanı türüdür. Anlık veri tutarlılığından feda ederek yüksek performans ve hıza odaklandı.
SQL INJECTION NEDİR?
ABD merkezli Açık Web Uygulama Güvenliği Projesi (OWASP) Vakfı tarafından her sene siber güvenlik tehdidi olarak yılın top 10 listesi yayınlamaktadır. SQL Injection bu listede 3.sırada yer almıştır. Yani son derece yaygın ve tehlikeli bir saldırı türüdür. Sonuçları tüm bir sistemi yok etmeye, kullanıcıların hassas verilerinin (kredi kartı bilgileri, kimlik numaraları…) ele geçirilmesine kadar gidebilir.
SQL Injection, bir saldırganın web uygulamasının yapmış olduğu SQL sorgularına müdahale etmesine izin veren bir güvenlik açığıdır.
Örneğin bir giriş sayfasındaki güvenlik açığı sebebiyle saldırgan verileri transfer edebilir, değiştirebilir, silebilir. Erişilen tüm veriler manipüle edilebilir hale gelir.
SQL Injection saldırısı giriş yapma sayfaları, yorum yapma kutucukları, forumlar gibi yerlerde etkilidir. Kodlaması yanlış veya eksik yapılan bir metin veya sorgu dizisinin, kötü niyetli birisi tarafından kullanılarak sitenin arka planında çalışan SQL sorgularına müdahale ederek aslında görüntülemeye, düzenlemeye yetkisi olmayan verilere erişim sağlar.
Başka bir örnekte ise bir e-ticaret sitesinin ürün filtreleme kısmını ele alalım. Bu kısımda UNION kodunu ekleyerek başka tablolardan veri çeker ve kullanıcıların hassas verilerine erişim sağlayabilir. UNION kodu iki veya daha fazla sorgu sonuçlarını birleştirmek için kullanılır.
resimdeki örnekte görüldüğü gibi kullanıcı adı ve şifre girilmeden sisteme giriş yapılabiliyor. Bunun sağlanmasının sebebi:
kodunda kullanıcının doldurabildiği alanlar müdaheleye açık haldedir. Eğer bu alanlara doğruluğu kesin olan bir koşul girilirse kullanıcı adı ve şifre kontrolü gerçekleşmeden sisteme girilebilir. Şu şekilde doldurulursa sisteme girilmiş olur:
User Id: 'OR 1=1;/*
Password: */--
alanlar bu şekilde doldurulduğunda web sitesinin arka plannda şu şekilde bir sorgu oluşacaktır:
bu sorgu sizi sisteme hiçbir kullanıcı bilginiz olmasına gerek kalmadan girmenizi sağlar.
SQL Injection Nasıl Engellenir?
Her zaman tüm yazılımlarınız güncel olsun.
Web sitenizdeki forum kısımlarına Captcha ekleyin.
Uygulamalarınızda çift faktörlü giriş seçeneğini yaygınlaştırın
Firewall kullanın
Uygulamanızın arka planda çalıştırdığı sorguları kontrol edin. NULL karakterlerin yer aldığı sorguları yeniden düzenleyin
Log toplayın
SQL Injection OSI Katmanlarının Neresindedir?
İlk önce OSI katmanlarını hatırlayalım.
Her bir katmanın görevi bir üst katmana servis sağlamaktır. Verinin iletimi üst katmandan alt katmana doğrudur (uygulama katmanı -> fiziksel katman). Diğer bilgisayarda ise veri üstten alta doğru gider (fiziksel katman -> uygulama katmanı).
1.Fiziksel Katman
Fiziksel katman verinin kablo üzerinden alınacağı yapıyı tanımlar. Verileri bit olarak iletilir.
2.Veri Bağlantı Katmanı
Bu katman fiziksel katmana erişmek ve bağlantı kullanmak ile ilgili çeşitli kuralları belirler. Veriler ağ katmanından fiziksel katmana gönderilir. Bu süreçte veriler parçalara bölünür. Bu parçalara frame denir. Frameler verileri belirli bir kontrol içinde göndermeyi sağlayan paketlerdir.
3.Ağ Katmanı
Ağ katmanı, veri paketine farklı bir ağa gönderilmesi gerektiğinde yönlendiricilerin kullanacağı bilginin eklendiği katmandır. Veriler paketler halinde taşınır. IP protokolü bu katmanda çalışır.
4.Taşıma Katmanı
Taşıma katmanı üst katmanlardan gelen veriyi ağ paketi boyutunda parçalara böler. TCP, UDP, SPX protokolleri bu katmanda çalışır. Bu katmanda verileri segment halinde taşınır ve bu protokoller (TCP, UDP, SPX) hata kontrolü gibi görevleri de yerine getirir. Bu katman verinin uçtan uca iletimini sağlar.
5.Oturum Katmanı
Oturum katmanında iki bilgisayardaki uygulama arsındaki bağlantının yapılması, kullanılması ve bitirilmesi işlemleri yapılır. Bir bilgisayar aynı anda birden fazla bilgisayarla iletişim halinde olduğunda, doğru bilgisayarla iletişime geçebilmesini sağlar. Sunum katmanına gönderilecek veriler farklı oturumlarla birbirinden ayrılarak yapılır.
6.Sunuş Katmanı
En önemli görevi yollanan verinin karşı bilgisayarın anlayacağı şekilde çevrilmesidir. Verinin şifrelenmesi, açılması, sıkıştırılması da bu katmanda yapılır.
7.Uygulama Katmanı
Uygulama katmanı bilgisayar uygulaması ile ağ arasında bir arabirim sağlar. Sadece bu katman OSI katmanları arasında diğer katmanlara servis sağlamaz. Uygulamaların ağ üzerinde çalışmasını sağlar. Bu katman kullanıcıların gereksinimlerini karşılar. SSH, telnet, FTP, TFTP, SMTP, SNMP, http, DNS, protokolleri ve tarayıcılar bu katmanda çalışır. E-posta ve veri tabanı gibi uygulamalar bu katman aracılığıyla yapılır.
SQL Injection OSI katmanlarının Uygulama Katmanında yani 7.katmanında bulunur.
Buradaki bilgilerin hepsi eğitim için verilmiştir.
Bilgileri ilişkisel bir veri tabanında depolamak ve işlemek için kullanılan sorgu tabanlı bir programlama dilidir. Veri tabanındaki bilgileri kaldırmak, değiştirmek, eklemek, aramak, güncellemek, depolamak ve almak için SQL ifadeleri kullanılabilir.
1970’lerde ilişkisel veri modeline dayatılarak ortaya çıkarılmıştır.
MySQL NEDİR?
Oracle tarafından sunulan açık kaynaklı veri tabanı yönetim sistemidir. Kullanmak için herhangi bir ücret ödenmesi gerekmez. MySQL, SQL sorguları kullanan bir ilişkisel veri tabanı programıdır.
NoSQL NEDİR?
NoSQL, verileri toplamak için tablo kullanmayan, ilişkisel olmayan veri tabanlarını ifade eder. NoSQL duyarlı, yoğun kullanımlı uygulamalar için uygundur.
İlişkisel Veri Tabanı Nedir?
İlişkisel veri tabanı, birbiriyle ilişkili veri noktalarını depolayan ve bunlara erişim sağlayan bir veri tabanı türüdür. Tablolar aracılığıyla daha kolay okunabilir, kullanılabilir ve ilişkisel bir biçimde verileri depolar.
İlişkisel Olmayan Veri Tabanı Nedir?
İlişkisel olmayan veri tabanı, çoğu geleneksel veri tabanı sisteminde bulunan satır ve sütunların tablo şemasını kullanmayan bir veri tabanı türüdür. Anlık veri tutarlılığından feda ederek yüksek performans ve hıza odaklandı.
SQL INJECTION NEDİR?
ABD merkezli Açık Web Uygulama Güvenliği Projesi (OWASP) Vakfı tarafından her sene siber güvenlik tehdidi olarak yılın top 10 listesi yayınlamaktadır. SQL Injection bu listede 3.sırada yer almıştır. Yani son derece yaygın ve tehlikeli bir saldırı türüdür. Sonuçları tüm bir sistemi yok etmeye, kullanıcıların hassas verilerinin (kredi kartı bilgileri, kimlik numaraları…) ele geçirilmesine kadar gidebilir.
SQL Injection, bir saldırganın web uygulamasının yapmış olduğu SQL sorgularına müdahale etmesine izin veren bir güvenlik açığıdır.
Örneğin bir giriş sayfasındaki güvenlik açığı sebebiyle saldırgan verileri transfer edebilir, değiştirebilir, silebilir. Erişilen tüm veriler manipüle edilebilir hale gelir.
SQL Injection saldırısı giriş yapma sayfaları, yorum yapma kutucukları, forumlar gibi yerlerde etkilidir. Kodlaması yanlış veya eksik yapılan bir metin veya sorgu dizisinin, kötü niyetli birisi tarafından kullanılarak sitenin arka planında çalışan SQL sorgularına müdahale ederek aslında görüntülemeye, düzenlemeye yetkisi olmayan verilere erişim sağlar.
Başka bir örnekte ise bir e-ticaret sitesinin ürün filtreleme kısmını ele alalım. Bu kısımda UNION kodunu ekleyerek başka tablolardan veri çeker ve kullanıcıların hassas verilerine erişim sağlayabilir. UNION kodu iki veya daha fazla sorgu sonuçlarını birleştirmek için kullanılır.
resimdeki örnekte görüldüğü gibi kullanıcı adı ve şifre girilmeden sisteme giriş yapılabiliyor. Bunun sağlanmasının sebebi:
SQL:
SELECT * FROM Users WHERE user_id='srinivas' AND password='mypassword'
User Id: 'OR 1=1;/*
Password: */--
alanlar bu şekilde doldurulduğunda web sitesinin arka plannda şu şekilde bir sorgu oluşacaktır:
SQL:
SELECT * FROM Users WHERE user_id=''OR 1=1;/* and password='*/--'
SQL Injection Nasıl Engellenir?
Her zaman tüm yazılımlarınız güncel olsun.
Web sitenizdeki forum kısımlarına Captcha ekleyin.
Uygulamalarınızda çift faktörlü giriş seçeneğini yaygınlaştırın
Firewall kullanın
Uygulamanızın arka planda çalıştırdığı sorguları kontrol edin. NULL karakterlerin yer aldığı sorguları yeniden düzenleyin
Log toplayın
SQL Injection OSI Katmanlarının Neresindedir?
İlk önce OSI katmanlarını hatırlayalım.
- Physical (Fiziksel Katman)
- Data Link (Veri Bağlantı Katmanı)
- Network (Ağ Katmanı)
- Transport (Taşıma Katmanı)
- Session (Oturum Katmanı)
- Presentation (Sunu Katmanı)
- Application (Uygulama Katmanı)
Her bir katmanın görevi bir üst katmana servis sağlamaktır. Verinin iletimi üst katmandan alt katmana doğrudur (uygulama katmanı -> fiziksel katman). Diğer bilgisayarda ise veri üstten alta doğru gider (fiziksel katman -> uygulama katmanı).
1.Fiziksel Katman
Fiziksel katman verinin kablo üzerinden alınacağı yapıyı tanımlar. Verileri bit olarak iletilir.
2.Veri Bağlantı Katmanı
Bu katman fiziksel katmana erişmek ve bağlantı kullanmak ile ilgili çeşitli kuralları belirler. Veriler ağ katmanından fiziksel katmana gönderilir. Bu süreçte veriler parçalara bölünür. Bu parçalara frame denir. Frameler verileri belirli bir kontrol içinde göndermeyi sağlayan paketlerdir.
3.Ağ Katmanı
Ağ katmanı, veri paketine farklı bir ağa gönderilmesi gerektiğinde yönlendiricilerin kullanacağı bilginin eklendiği katmandır. Veriler paketler halinde taşınır. IP protokolü bu katmanda çalışır.
4.Taşıma Katmanı
Taşıma katmanı üst katmanlardan gelen veriyi ağ paketi boyutunda parçalara böler. TCP, UDP, SPX protokolleri bu katmanda çalışır. Bu katmanda verileri segment halinde taşınır ve bu protokoller (TCP, UDP, SPX) hata kontrolü gibi görevleri de yerine getirir. Bu katman verinin uçtan uca iletimini sağlar.
5.Oturum Katmanı
Oturum katmanında iki bilgisayardaki uygulama arsındaki bağlantının yapılması, kullanılması ve bitirilmesi işlemleri yapılır. Bir bilgisayar aynı anda birden fazla bilgisayarla iletişim halinde olduğunda, doğru bilgisayarla iletişime geçebilmesini sağlar. Sunum katmanına gönderilecek veriler farklı oturumlarla birbirinden ayrılarak yapılır.
6.Sunuş Katmanı
En önemli görevi yollanan verinin karşı bilgisayarın anlayacağı şekilde çevrilmesidir. Verinin şifrelenmesi, açılması, sıkıştırılması da bu katmanda yapılır.
7.Uygulama Katmanı
Uygulama katmanı bilgisayar uygulaması ile ağ arasında bir arabirim sağlar. Sadece bu katman OSI katmanları arasında diğer katmanlara servis sağlamaz. Uygulamaların ağ üzerinde çalışmasını sağlar. Bu katman kullanıcıların gereksinimlerini karşılar. SSH, telnet, FTP, TFTP, SMTP, SNMP, http, DNS, protokolleri ve tarayıcılar bu katmanda çalışır. E-posta ve veri tabanı gibi uygulamalar bu katman aracılığıyla yapılır.
SQL Injection OSI katmanlarının Uygulama Katmanında yani 7.katmanında bulunur.
Buradaki bilgilerin hepsi eğitim için verilmiştir.
Son düzenleme: