Subsonic PageIndex Problemi ve DoS

15-4-2008

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.

Recent Blog Posts

See all of the blog posts