Bugün eski bir saklı yordam bakıyordum quotename
ve giriş parametreleri üzerinde kullandığını fark ettim . Biraz kazma yaptıktan sonra tam olarak bu siteye rastladım . Şimdi ne yaptığını ve nasıl kullanılacağını anlıyorum, ancak site SQL Enjeksiyon saldırılarının hafifletilmesi olarak kullanıldığını söylüyor. Asp.net kullanarak doğrudan bir veritabanını sorgulayan uygulamalar geliştirmek için kullandığımda, kullanıcı girdisini gerçek bir değer olarak iletmek için ADO.Net parametrelerini kullanırdım ve saklı yordamlarımda koruma konusunda gerçekten endişelenmezdim.
Şimdi yazmadığım uygulamalar tarafından kullanılacak saklı bir yordam yazıyorum, bu yüzden işlem düzeyinde enjeksiyon saldırılarına karşı denemem ve korumam gerekiyor, quotename
bunu yapmanın en iyi yolu veya daha yeni bir işlev var / daha iyi yöntem?
Beni bu düşünce modelinden alan kod ( @parm1
bir kullanıcı giriş parametresidir):
'SELECT project [Project], project_desc [Description],
customer [Customer], cpnyid [Company]
FROM PJPROJ (nolock)
where project like ' + quotename(@parm1,'''') + '