2012-12-01 22 views
6

Diyelim ki bir DB sağlık kayıtları ve bir ASP.NET MVC uygulaması var. Birinin bir Ajax isteğini çağırmak için "/ api/medicalRecords? $ Filter = id gt 0" URL'sini kullandığını varsayalım. Bu bana SQL enjeksiyonu için açık gibi görünüyor - tıpkı 10-15 yıl önce olduğu gibi ...SQL enjeksiyonu için OData endişesi

Bu, standart SQL enjeksiyona açık olduğu veya sunucu tarafına bağlı olduğu anlamına geliyor mu? IQueryable sonuç ve varlık çerçevesi 4)?

cevap

6

deneyin OData ve SQL Enjeksiyon hakkında çok detay bilgi sağlar bu blog yazısı okuma:

http://kscottmorrison.com/tag/sql-injection/

... OData, tabii ki, enjeksiyon ISN'de böylece veri kaynağı bağlantısı vardır Bir meselesi - sadece ilk etapta bir göz atmak yeterlidir. Peki ... OData kesinlikle bu bağlantı yapma yeteneğine ne yönetmektir ile kritik öneme sahiptir

+0

Tam olarak aradığım şey ... ve Google çok fazla yardım etmedi :-). Artık bunların hepsinin bağlantıyı nasıl yönettiğime ve verileri uygulama kullanıcılarına nasıl yansıttığına bağlı olduğunu anlıyorum. – lionheart

3

WCF Veri Hizmetleri SQL enjeksiyon için olasılığını ortadan kaldırır filtrenizden değerleri parameterize ... fakat bu soruya uğruna, hiçbir kimlik doğrulama mekanizması mevcut olduğunu varsayalım -

Ben kimlik doğrulama mekanizması gerekli olduğunu biliyoruz .

Veritabanı toplayıcıda yürütülen gerçek SQL sorgularını görüntülemenizi öneririm.

+0

Yani, anlamama izin - Ben Varlık Framework veri modelini çağırmak için WCF kullanmak zorunda kalacak? Enitity çerçeve veri modelini doğrudan kullanırsam ne olur? – lionheart

+0

Zaten yaptığın bu değil mi? Sorunuz, WCF Veri Servisleri şeklinde gelen .NET'te OData ile ilgilidir. –

+0

Hayır, bu ASP.NET MVC uygulamasıdır ve WCF ... kullanımını kaldırıyorum, WCF kullanıyorum bile, ölçüt alanında kimliği 0'dan büyükse, hala WCF için geçerli ... – lionheart