Subsonic PageIndex Problemi ve DoS

Web sitelerinde genelde atlanılan ancak bir çok script kiddie ve potansiyel saldırgan tarafından kötüye kullanılan olaylardan biri sunucu tarafından uzun ve ağır işlem yapan sayfalara çok fazla istek yaparak sisteme DoS saldırısında bulunmaktır. Genelde arama sayfaları, ağır listeleme sayfaları ya da kötü bir kod bunun için biçilmiş kaftandır.

Bu aralar Subsonic ile oynuyorum, muhtemelen .NET için en iyi ücretsiz ORM sistemidir, sayfalama yapmak için PageIndex diye bir parametre var , temel olarak veritabanından data çekerken kaçıncı sayfada olduğunuzu tespit ediyor. Dolayısıyla sayfaları onar onar listelerken kaçıncı onluk listesinde olduğunuzu belirtiyor. Tuhaf olan şu ki PageIndex' e değer olarak -1 verdiğinizde sistemden tüm dataları geri döndürüyor, dolayısıyla PageSize parametresindeki limiti de geçmiş oluyorsunuz. Bu sayede sistem bir anda 5000 kayıdı SQL Server' dan çekmeye çalışabilir.

Özetle eğer geliştirici bu datanın numerik aralığını kontrol etmez sadece numerik olduğunu kontrol ederse, bir saldırdanın -1 değeri vermesi kötü sonuçlara neden olabilir. Nümerik kontrolü yetmeyecektir çünkü -1 de geçerli bir nümerik değer. Sonuç olarak sisteminize giren datanın tam olarak beklediğiniz gibi olduğundan emin olun ve API' lara gözü kapalı güvenmeyin.

Tuna Toksoz - 17.04.2008

bir de nhibernate icin codegeneration yapan nhibernate query generator var, boylece sorgulari vs hardcoded yapabiliyorsun,.cok lazim degil ama olsun:)

ayrica nhibernate icin su an LINQ destegi gelmis durumda(kismen-hic fena sayilmaz).

Ferruh Mavituna - 17.04.2008

LLBL kullandin mi hic peki, belki isini daha fazla gorur, gerci ucretli o.

Onu arastirma yaparken gordum ama parali diye hic bulasmadim, fiyati ucuzda degildi sanirim. Onceden raptier kullaniyordum o ucuz ve kucuk veritabanlari icin de tamamen ucretsiz ama proje bir sekilde terkedilmis durumda su an ve bazi konularda da o kadar iyi degil zaten.

Tuna Toksoz - 17.04.2008

LLBL kullandin mi hic peki, belki isini daha fazla gorur, gerci ucretli o.

snkr - 17.04.2008

Ferruh abi hersey güzelde, disariya linkleri neden blank yapmiyorun?
Sag click yeni sekmede aç demeye üseniyor insan : )

Ferruh Mavituna - 17.04.2008

NHibernate i saymazsak:)

Bu zevk meselesi tabii ki ama ben NHibernate i pek sevmiyorum, SubSonic' te de çok salak seyler var ayri konu ama. Henüz biraz toy gibi.


Ayrica subsonic'e sadece ORM demek yanlis olur.

Orasi dogru bayagi baska islerde yapiyor, aslinda benim sinirimi bozan konulardan biri de bu Subsonic hakkinda, bir sürü gereksiz elementi var, ben sadece ORM kismi ile ilgileniyorum. Bana class' larimi hardcoded olustursun gerisine karismam:)

Tuna Toksoz - 16.04.2008

NHibernate i saymazsak:) Ayrica subsonic'e sadece ORM demek yanlis olur.

TEAkolik - 16.04.2008

Ayri önem ne demek aman birkaç site linki vermedin Allah'tan yoksa ...:)

ParadoXe - 16.04.2008

Herhalde host isleri ile ilgilenenler için ayri bir önemi olur.

Sedat Kumcu - 15.04.2008

Makale çok önemli bir konuda bizi aydinlatmis. Elinize saglik tesekkürler.

info@knbykl.org - 15.04.2008

Hemen kontrol edeyim ben de. Bakalim nasil bir isleve sahipmis.

Yorum Yazın


Tüm yorumlar onaydan geçmektedir, bu işlem en uzun 30 dk. sürecektir. E-mail adresleri yeni yorumları bildirme harici hiç bir başka amaçla kullanılmamaktadır ve sitede gözükmemektedir.



Captcha Kodu