Sıralama: Newbie
Gruplar: Registered
Katılan: 4.08.2016(UTC) Mesajlar: 5 
|
merhaba, kullanmış olduğumuz programın hazır raporları var ve bu raporların sorgularını yedeğe alıp sql de çalıştırıyorum. takıldığım bir kaç konu hakkında bilgi vermenizi rica ederim.
1- Programda aşağıdaki gibi bir sorgu var. Yedekte bu raporu çalıştırmak istediğimde " *= " işareti yüzünden çalışmıyor, " *= " işareti yerine = yapsam çalışıyor. " *= " işaretinin sql deki karşılığı nedir?
SELECT a.MUST_KODU, a.MUST_ADI, a.FAT_ADRESI1,a.FAT_ADRES2,b.SEHIR_ADI FROM MUSTERILER a, D00000.SEHIRLER b, MUSTERI_DIGER d WHERE a.FAT_SEHIR_ID*= b.SEHIR_ID and a.MUSTERI_ID *= d.MUSTERI_ID ORDER BY a.MUST_ADI
2- Aşağıdaki sorgu stok listesini getiriyor. Aşağıdaki sorgu da where 1=1 ne işe yarıyor, olmasa ne olurdu. Bu kısmı silsem de 17878 adet sonuç geliyor, silmesem de . where 2=2 yazsam da 17878 sorgu getiriyor. where 1=0 yazarsam gelmiyor. Biraz araştırdım, SQL Injection diye bir olay var ama bu sorguyla ilgisini anlayamadım. select s.*, (SELECT TOP 1 L.ADI FROM FIYAT_SATIRLARI FS,FIYAT_LISTELERI L WHERE FS.SHD_ID=S.STOK_ID AND L.FIYAT_LISTESI_ID=FS.FIYAT_LISTESI_ID) FIYAT_LISTESI_ADI from
( select ss.STOK_SINIF_KODU, s.* from stok s, STOK_SINIFLARI ss where s.STOK_SINIF_ID = ss.STOK_SINIF_ID union all select '' STOK_SINIF_KODU, s.* from stok s where STOK_SINIF_ID <= 0 ) s where 1=1
order by s.STOK_KODU
|
|
|
|
Sıralama: Administration
Gruplar: Administrators
Katılan: 6.05.2014(UTC) Mesajlar: 672
19 Kere Teşekkür Etti. 152 Mesajına Toplam 253 Kere Teşekkür Edildi.
|
Originally Posted by: barberouge  merhaba, kullanmış olduğumuz programın hazır raporları var ve bu raporların sorgularını yedeğe alıp sql de çalıştırıyorum. takıldığım bir kaç konu hakkında bilgi vermenizi rica ederim.
1- Programda aşağıdaki gibi bir sorgu var. Yedekte bu raporu çalıştırmak istediğimde " *= " işareti yüzünden çalışmıyor, " *= " işareti yerine = yapsam çalışıyor. " *= " işaretinin sql deki karşılığı nedir?
SELECT a.MUST_KODU, a.MUST_ADI, a.FAT_ADRESI1,a.FAT_ADRES2,b.SEHIR_ADI FROM MUSTERILER a, D00000.SEHIRLER b, MUSTERI_DIGER d WHERE a.FAT_SEHIR_ID*= b.SEHIR_ID and a.MUSTERI_ID *= d.MUSTERI_ID ORDER BY a.MUST_ADI
2- Aşağıdaki sorgu stok listesini getiriyor. Aşağıdaki sorgu da where 1=1 ne işe yarıyor, olmasa ne olurdu. Bu kısmı silsem de 17878 adet sonuç geliyor, silmesem de . where 2=2 yazsam da 17878 sorgu getiriyor. where 1=0 yazarsam gelmiyor. Biraz araştırdım, SQL Injection diye bir olay var ama bu sorguyla ilgisini anlayamadım. select s.*, (SELECT TOP 1 L.ADI FROM FIYAT_SATIRLARI FS,FIYAT_LISTELERI L WHERE FS.SHD_ID=S.STOK_ID AND L.FIYAT_LISTESI_ID=FS.FIYAT_LISTESI_ID) FIYAT_LISTESI_ADI from
( select ss.STOK_SINIF_KODU, s.* from stok s, STOK_SINIFLARI ss where s.STOK_SINIF_ID = ss.STOK_SINIF_ID union all select '' STOK_SINIF_KODU, s.* from stok s where STOK_SINIF_ID <= 0 ) s where 1=1
order by s.STOK_KODU
Merhabalar 1 sorunuzdaki *= diye birşey ben hiç görmedim açıksacı bende bilmiyorum ama += diye bir olay var, bu joinin tipine karar veriyor + basta ise left join sonda ise right join oluyor diye hatırlıyorum. Bu eski bir yazış şekli , artık onun yerine inner join left join yazıyoruz 2 Bunun sebebi su o kodun sonuc döndürmesini istemediğiniz zaman kodu silmek yerine 1=0 yazarak kolaylıkla sonuç döndürmemesini sağlıyorsunuz istediğiniz kadar 1=0 yazın adam gelir yanına | 1=1 yazar yine injectiona yakalanırsınız |
Yeniden geri döndük 2025 |
|
|
|
Forumu Atla
Bu foruma yeni konular postalayamazsınız.
Bu forumda ki konulara yeni posta gönderemezsiniz.
Bu forumdaki postalarınızı silemezsiniz.
Bu forumdaki postalarınızı düzenleyemezsiniz.
Bu forumda anketler yaratamazsınız.
Bu forumdaki anketlere oy veremezsiniz.