Evet arkadaslar burada sizlere Sql hakkinda kisa bilgi vericem bu bilgi sayesinde isterseniz sql ile sitelerden bilgi çekebilir istersenizde sql dili hakkinda bilgi edinebilirsiniz yani ben size burada biraz bilgi vericem bu bilgiyi iyi yönde yada kötü yönde kullanmak sizin elinizde diyorum ve sözü uzatmadan isime basliyorum simdi ilk önce sql nedir
Sql veri tabanindaki berileri islemek için kullanilan bir sorgulama dilidir neler yapilabilir bu sorgulama dili sayesinde diye sorucak olursaniz bununla veri tabaninizdaki daha dogrusu veri tabananindaki bilgileri güncelleyebilir silebilir listeleyebilir veya daha ileri gidicek olursak veritabani yedegi bile alabilirsinzi fazla uzatmadan önce komutlar hakkinda biraz bilgi verelim hangi komutlar kullaniliyo diyecek olursaniz komutlarin bizim isimize yarayan kismi daha dogrusu en çok kullanilan komutlar sunlar SELECT, FROM, WHERE, UPDATE, DELETE, biz ise bunlarin arasindan en çok select from where update having olanlarini kullaniyoruz diyorum ve biraz kodlar hakkinda bilgi vermeye basliyorum ilk komutumuz
SELECT: Bu komut tablodan seçmek istedigimiz kolonu belirtmek için kullanilir genelde bu komuttan hemen sonra FROM komutu kullanilir o komutumuzuda açiklayalim
FROM: Bu ise hanhi tablo üzerinde islem yapicaksak o tabloyu belirtmemiz için kulanilir.
WHERE: önemli bir komuttur tablo üzerindeki Tüm degerleri degilde sadece bir degeri yada bizim seçtigimiz deger üzerinde islem yapmamiza yarayan komuttur simdilik bu ögrendigimiz 3 komutla ilgili bir kaç küçük örnek yapalim
SELECT Users FROM Authors WHERE UID=’1’ Buradaki yaptigimiz islem ise Users Kolonunun Altindaki Authors Tablosunda UID'si 1 olan kisinin bilgilerini çagirmaktir Bir Örnek daha verelim
SELECT Durum FROM hayat WHERE tarih='bu aralar' Bu biraz daha eglenceli bir örnek oldu Buradaki Amaç ise Bu aralar Hayattaki durumunu listelemeye yariyor (:-))
Neyse Bu kadar Kod örneginden sonra diger komutlarimiza devam edelim
UPDATE: Bu komutun adindan da anlasilabilicegi gibi Güncelleme yani bizim tabirimizle edit isine yariyor komutun kullanimi ise söyle UPDATE beynim set hayatinanlami='redLine';-- Bu komutta ise yapmaya çalistigimiz olay Beynim Kolonundaki HayatinAnlami Tablosundaki Tüm verileri redLine Olarak Degistirdir. Eger Biz Bu komutta tablodaki tüm degerleri degilde sadece bir degeri degistirmek istiyorsak kullanicagimiz kod deminde anlatmis bulundugum WHERE komutudur.
DELETE: Bu komut yardimiylada veri tabanindan veri silebiliriz nasil Kullanicaz derseniz DELETE FROM BEYNIM buda beynimin içindekileri sil anlamina geliyor simdi gerekli komutlari tanidikdan sonra bir kaç küçük örnekle deneyelim kodlarimizi pekistirelim
Eskiden Avustralya sitelerinde daha dogrusu avustralya haber sitelerinde basit bir sql vardi update yapilabiliyodu haberler onla ilgili olan bir sql çalismasi yapalim ilk önce sizlerle simdi biz haber sitesine girdiniz diyelim adresi
www.ornek.com olsun simdi haber sitesi olduguna göre aktif web programalama dillerinden herhangi biriyle kodlanmis olmasi gerekli bunlardan en çok kullananilanlar nedir asp be php ozaman bizde bunlar üzerinde çalisalim simdi veri tabanindaki haberleri degistiricegimize göre veritabanindaki verileri sitenin bize göstermesi gerekli dimi haber sitesi oldugu için bu haber olur genelde bizde 12. haberi okumaya çalisalim yani siteye girdik 12. haberi normal bir okur gibi okuyacagiz bunun için sitede ortalama su sekilde bi sayfaya girmemiz gereklidir yani tabii bu her sitenin kodlamasina göre degisir ben ortalama bisey söylüyorum size siz giriceksiniz siteye herhangi bir habere tiklicaksiniz ve sitede yakla**** adres satirinda su sekilde birsey çikcak
www.ornek.com/news.asp?id=12 Burada site bize demeye çalisiyorki veri tabanindaki 12 id'li veriyi sana gösteriyorum diyor biz tabi isin hack kisminda oldugumuz için sqlyi hataya zorluycaz nasil yapicaz bunu olmayacak haber numarasi giricez mesela ne olabilir bu 12'a deneyelim bakalim ne olacak
Kod:
Microsoft OLE DB Provider for SQL Server error '80040e14'
Unclosed quotation mark before the character string 'a;'.
/news.asp, line 67
Tamam Tam istedigimiz Türde Bir hata ne diyo burada Sql serverda 'a degimi bulunmadigindan dolayi o veriyi ORDER BY listeeleme komutudur bu arada sqlde listeleyemiyomus e iyi ne güzel bizimde istedigimiz bu diyoruz simdi biz update yapicaz haberi ama update komutu nasil kullaniliyodu bir hatirlayalim UPDATE beynim set hayatinanlami='redLine';-- Himm buradan anladigimiz gibi Bize Beynim Yerine Kolon ismi hayatinanlami yerine isede tablo ismi gerekli himm nasil aliriz bunlardan birini derken aklimiza hemen ne geliyo tabiki Having komutu havingle kolon adini almaya çalisiyoruz deneyelim having'i nasil kullanicaz derseniz tabiiki
www.ornek.com/news.asp?id=12 having 1=1 seklinde
karsimiza ise ortalama
Kod:
Microsoft OLE DB Provider for SQL Server error '80040e14'
Unclosed quotation mark before the character string 'a having 1=1 .....BY news;'.
/news.asp, line 67
Tarzinda (Tam Bu sekilde çikmaz tabii ben salladim öyle sonra böyle bi kod çikmasi imkansiz demeyin sonuçda salladim () ) bir hata karsimiza çikar ve biz orada ne görüyoruz ....... BY news ne demeye çalisiyo biz bu adresdeki yani
www.ornek.com/news.asp?id=12 having 1=1 verileri news kolonundan listeleyemiyoruz ne diyo news kolonundan listeleyemiyoruz nedemek bu bizim için kolon adi news mis bunu ögrenmis olduk ozaman geriye ne kaldi tablo ismi tablo ismini ise biraz kurcalayarak bulabiliriz yada mantik yürüterek mantik yürütelim haber basliklarini degistiricegimize göre büyük bi ihtimal ile haber basliginin tablo ismi TiTledir ozaman bizim için her sey tmm sadece kodumuzu yazmak aldiimiz bilgilere göre son kez komutumuzu yziyoruz yani
www.ornek.com/news.asp?id=12 UPDATE news SET ...='Hacked by ......';-- Burada Hacked By....Yerine Yönlendirme kodu koyarsaniz sitedeki tüm haberler istediginiz yere yönlenir yada Div kodlari yardimiyla sitede Tam Syfa index atarsiniz size kalmis buradaki ;--'nin anlami ise...... tablosundaki tüm verilere yaz demek bunun yerine Where komutuyla tek veriyede yazdirabilirsiniz updateyle böyle oldu ileride Select ile ilgilide sql örnekleri yayinliyacagim simdilik bukadar takildiginiz kismi buradan sorabilirsiniz
LutFeN Paylasim YaPa|im