Rischio di iniezione SqlDataSource di ASP.NET

2

Ho un sito Web interno (in arrivo sulla intranet) che sta per passare attraverso test vigorosi per assicurarmi che sia sicuro, quindi mi sto battendo giù per i boccaporti per così dire e ho codificato un ripetitore .NET da associare a una SqlDatasource .NET nella pagina di aspx, non nel codice sottostante. Uso i tag SelectParameters per inserire la stringa necessaria da una casella di testo per eseguire la query.

Mi chiedo quanto sia sicuro da SQL Injection e altre vulnerabilità.

 <asp:SqlDataSource ID="DataGetAppServer" runat="server" ConnectionString="<%$ ConnectionStrings:testConn %>"
     SelectCommand="SELECT [Server] FROM [ServerTracking] WHERE ([UserName] = @UserName)">
     <SelectParameters>
         <asp:ControlParameter ControlID="txtUser" Name="UserName" PropertyName="Text" Type="String" />
     </SelectParameters>
 </asp:SqlDataSource>

Devo fare di più per questo?

    
posta Malachi 25.09.2014 - 22:22
fonte

2 risposte

3

È sicuro. Hai usato SqlParameters in questo modo non devi preoccuparti di SQLi.

Ci sono situazioni in cui l'utilizzo dei parametri potrebbe non proteggerti da SQLi, come l'utilizzo di un parametro per la costruzione di SQL dinamico in un processo memorizzato, ma non c'è nulla di simile a ciò che accade qui.

Questo è un esempio da manuale quando la parametrizzazione previene l'iniezione.

    
risposta data 25.09.2014 - 22:40
fonte
2

Questo non è suscettibile all'iniezione SQL. Questo metodo incorpora la consulenza prototipale per evitare l'iniezione SQL, che consiste nell'utilizzare query parametrizzate. Questo separa esplicitamente i dati negli argomenti dal codice eseguibile.

    
risposta data 25.09.2014 - 22:42
fonte

Leggi altre domande sui tag