到底是什么让它如此SQLParameter防止了SQL InAction攻击.NET参数化查询?它只是剔除了任何可疑的角色,还是有更多的东西?
有没有人判断过,当你传递恶意输入时,SQL Server到底得到了什么?
到底是什么让它如此SQLParameter防止了SQL InAction攻击.NET参数化查询?它只是剔除了任何可疑的角色,还是有更多的东西?
有没有人判断过,当你传递恶意输入时,SQL Server到底得到了什么?
基本上,当使用SQLParameters
执行SQLCommand
时,参数永远不会直接插入到语句中.而是调用一个名为sp_executesql
的系统存储过程,并给出SQL字符串和参数array.
这样使用时,参数被隔离并作为数据处理,而不必从语句中解析出来(因此可能会对其进行更改),因此参数包含的内容永远无法"执行".你会得到一个很大的错误,参数值在某种程度上是无效的.