使用SqlParameter可以完全避免sql注入
本文关键字:sql 注入 完全避免 SqlParameter 使用 | 更新日期: 2023-09-27 18:20:01
如果需要将数据插入表中,使用SqlParameter是最佳选择。但我听到有人说SqlParameter在SQL注入方面仍然存在一些缺陷。证据是联系一个sql字符串并运行exec命令。在这种情况下,SQL注入仍然存在一些风险。
但我的问题是,如果我只使用SqlParameter在没有exec命令的情况下将数据插入表中,那么我是否仍然存在SQL注入的风险?
exec
示例的问题是运行两个查询。第一个查询使用concationation构建第二个sql字符串,然后执行第二个查询。
只要您将命令和数据通道分开(使将要执行的查询独立于运行查询的变量的值),就不可能有SQL注入(因为SQL注入的定义使用数据通道将某些东西滑入命令通道)
是的,只要您可以为动态添加到查询中的每个语句使用一个参数
糟糕的是,大多数框架都不允许这样做,但只针对少数简单的数据类型。