Durante la revisione del codice per un'applicazione vb.net mi sono imbattuto nella seguente implementazione delle stored procedure usando ExecuteDataSet
Result = DBInstance.ExecuteDataSet(Name, paramArrayList.ToArray)
Qui, 'Nome' è il nome della stored procedure e i parametri di input del client vengono passati in una matrice. 'DBInstance' è ottenuto da DatabaseProviderFactory
che deriva da Microsoft.Practices.EnterpriseLibrary.Data
. La stored procedure utilizza i parametri nella query come mostrato di seguito:
CREATE procedure sp_name
(
@para1 VARCHAR(25),
@para2 VARCHAR(25)
)
as
SELECT x,y FROM mytable
WHERE p = @para1 AND q = @para2
go
I parametri vengono passati alla funzione ExecuteDataSet () non convalidata .
Il metodo ExecuteDataSet esegue qualsiasi tipo di convalida sui dati passati ad esso al fine di prevenire SQLi? Non riesco a trovare alcun esempio su Internet che utilizza lo stesso metodo per implementare stored procedure.
Ho esaminato l'implementazione secure delle stored procedure in VB che utilizza chiaramente query parametrizzata. La mia domanda riguarda il metodo ExecuteDataSet sicuro / non sicuro per il passaggio dei parametri alle stored procedure.