sql注入是大家基本都清楚,一般来说用参数化就能解决注入的问题,也是最好的解决方式. 有次技术群里问到一个问题,如下图 很显然tableName是外部传递过来的,暂时不考虑具体的业务环境,但如果以select * from @table 把表名称当参数肯定是不能执行的,如果是拼接sql会有注入的危险.那么此情况怎么才能避免sql注入? 后来想到一个方式,如下图 看起来用到了参数化,应该没有注入的危险吧?那就写例子试试看 结果很不好,测试表tb还是被注入了数据.为什么会这样?其实仔细分析下,这种写…