Riesgo de inyección de ASP.NET SqlDataSource

2

Tengo un sitio web interno (en la intranet) que se someterá a pruebas enérgicas para garantizar que esté seguro, por lo que estoy bateando las escotillas, por así decirlo, y codifiqué un repetidor .NET para enlazar un .NET SqlDatasource en la página aspx, no en el código que está detrás. Utilizo las etiquetas SelectParameters para insertar la cadena que se necesita de un cuadro de texto para ejecutar la consulta.

Me pregunto qué tan seguro es esto de la Inyección SQL y otras vulnerabilidades.

 <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>

¿Necesito hacer más para esto?

    
pregunta Malachi 25.09.2014 - 22:22
fuente

2 respuestas

3

Es seguro. Ha utilizado SqlParameters, por lo que no necesita preocuparse por SQLi en este caso.

Hay situaciones en las que usar parámetros puede no protegerlo de SQLi, como usar un parámetro para construir SQL dinámico en un proceso almacenado, pero no hay nada de eso en este caso.

Este es un ejemplo de libro de texto sobre cuándo la parametrización impide la inyección.

    
respondido por el Abe Miessler 25.09.2014 - 22:40
fuente
2

Esto no es susceptible a la inyección de SQL. Este método incorpora el consejo prototípico para evitar la inyección de SQL, que consiste en utilizar consultas parametrizadas. Esto separa explícitamente los datos en los argumentos del código ejecutable.

    
respondido por el Xander 25.09.2014 - 22:42
fuente

Lea otras preguntas en las etiquetas