SORU
20 Kasım 2008, PERŞEMBE


Parametreler çok Sql enjeksiyonları önlemek için yeterli mi?

SQL sorgu parametreleri kullanma hakkında iyilik üzerinde meslektaşlarıma ve burada hem vaaz oldum, özellikle .NET uygulamaları. Hatta SQL enjeksiyon saldırılarına karşı dokunulmazlık vererek, onları vaat edecek kadar ileri gittim.

Ama eğer bu gerçekten doğru mu diye merak etmeye başladım. Parametrik sorgu karşı başarılı olacağı bilinen herhangi bir SQL enjeksiyon saldırıları var mı? Örneğin sunucu üzerinde arabellek taşmasına neden olan bir dize gönderir misiniz?

Tabii ki bir web uygulaması güvenli olduğundan emin olmak için yapmak gereken bazı şeyler var (dezenfektan kullanıcı girişi falan gibi) ama şimdi SQL enjeksiyonu düşünüyorum. Benim birincil veritabanları oldukları için MsSQL 2005 ve 2008 saldırılar özellikle ilgileniyorum, ama tüm veritabanları ilginç.

Edit: parametreleri ile ne demek istediğimi açıklamak İçin ve parametrik sorgular. Kullanarak yani parametreler "" dizesinde sql sorgu binanın yerine. değişkenleri kullanarak< / ^ br . Bu işi onun yerine:

SELECT * FROM Table WHERE Name = 'a name'

Bizim işimiz bu:

SELECT * FROM Table WHERE Name = @Name

ve sonra da sorgu / komut nesnesi @Adını parametre değerini ayarlayın.

CEVAP
20 Kasım 2008, PERŞEMBE


Yer tutucularyeter enjeksiyonları önlemek için. Hala tampon taşmaları için açık olabilir, ama bu bir SQL enjeksiyon (saldırı vektörü SQL sözdizimi ancak ikili olmaz) saldırı tamamen farklı bir lezzet. Geçirilen parametreleri düzgün kaçmış olacak beri, "" SQL. canlı gibi muamele edilecektir verileri aktarmak için bir saldırgan için bir yolu yok

Tutucular içindeki fonksiyonları kullanamazsınız, ve ve dize hazır olarak kaçtı kote oldukları için sütun veya tablo isimleri yer tutucu olarak kullanabilirsiniz.

Eğer kullanırsanızparametreleribir parçası olarakdize birleştirmedinamik sorgu içinde, dizeleri kaçtı olmayacak ama değişmez çünkü hala enjeksiyon karşı savunmasız. Parametreleri (integer) için diğer türleri kullanarak güvenli.

Bu, eğer giriş ** 4, gibi bir şey değerini ayarlamak için kullanıyorsanız o zaman birileri sadece kendilerini yöneticiler yapabilir sisteminizde dedi ve hepsi ücretsiz. Ama bu sadece temel giriş doğrulama, ve SQL enjeksiyon ile bir ilgisi yok.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • David Tedeyev

    David Tedeye

    20 AĞUSTOS 2011
  • pissengehen

    pissengehen

    26 EYLÜL 2006
  • TeeMayneTV

    TeeMayneTV

    27 Kasım 2010