我可以在网上找到关于动态创建参数化查询的正确和安全方法的大量信息.但是,此类网站仅讨论where子句的参数化.
那么,sql语句的其他子句呢?请参阅以下内容:
string sql = string.Format(@"
SELECT MIN(TableName) as TableName, {0}
FROM
(
SELECT 'Table A' as TableName, {0}
FROM {1}
UNION ALL
SELECT 'Table B' as TableName, {0}
FROM {2}
) tmp
GROUP BY {0}
HAVING COUNT(*) = 1", columnList, tableA, tableB);
Run Code Online (Sandbox Code Playgroud)
我正在构建一个声明,其中已经参数化了以下内容:
问题:这对sql注入有多么脆弱,可能会造成一些损害?
无论如何,我无法想到恶意黑客可以注入sql,这将导致正确形成的可执行sql.但话说回来,我不是一个SQL专家.