Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como o SQLParameter impede a injeção de SQL?


Basicamente, quando você executa um SQLCommand usando SQLParameters , os parâmetros nunca são inseridos diretamente na instrução. Em vez disso, um procedimento armazenado do sistema chamado sp_executesql é chamado e recebe a string SQL e o array de parâmetros.

Quando usados ​​como tal, os parâmetros são isolados e tratados como dados, em vez de precisarem ser analisados ​​fora da instrução (e, portanto, possivelmente alterá-la), de modo que o que os parâmetros contêm nunca pode ser "executado". Você receberá apenas um grande erro de que o valor do parâmetro é inválido de alguma forma.