【发布时间】:2018-10-10 17:10:16
【问题描述】:
我有以下查询字符串:
INSERT INTO cibi ([nome], [Zuccheri_100g], [tipo], [Nome_EN], [Nome_DE],[Nome_ES], [DefaultAmt])
VALUES ('{1}', {2}, {3}, '{4}', '{5}', '{6}', {7})
现在我有一个名为values 的字符串列表,我想将其替换为数字。我应该使用什么代码?我应该使用替换吗?
谢谢
【问题讨论】:
-
你用什么语言写这个?
-
C# 视觉工作室 2018
-
这更多地取决于您的 ORM 而不是您的 SQL 表达式。您使用哪个框架或库来执行此插入?
-
您应该不使用这种“手动构建”您的 SQL 语句的方法。您的系统将对 SQL 注入(网络上的 OWASP #1 漏洞)完全开放。您必须改用参数化查询并正确设置参数值
-
你想在这里使用参数绑定。尝试使用
replace()滚动您自己的绑定将导致您走上一条黑暗而痛苦的道路。 Read here how to parameterize your query in C# with sql server and bind to those parameters。这很容易,并且可以让您免于 sql 注入。习惯性地使用此方法编写所有 sql(需要参数)。如果您不使用sql-server,那么您使用的任何 RDBMS 以及它在 C# 中的库都应该支持这种开箱即用的某种形式。