C# LINQ to SQL InsertOnSubmit()是否受到SQL注入攻击?
我有这样的代码:C# LINQ to SQL InsertOnSubmit()是否受到SQL注入攻击?,c#,.net,linq-to-sql,sql-injection,C#,.net,Linq To Sql,Sql Injection,我有这样的代码: var newMsg = new Msg { Var1 = var1, Var2 = var2 }; using (AppDataContext appDataContext = new AppDataContext(ConnectionString)) { appDataContext.CClass.InsertOnSubmit(newMsg); appDataContext.SubmitChanges(); } INSERT INTO [
var newMsg = new Msg
{
Var1 = var1,
Var2 = var2
};
using (AppDataContext appDataContext = new AppDataContext(ConnectionString))
{
appDataContext.CClass.InsertOnSubmit(newMsg);
appDataContext.SubmitChanges();
}
INSERT INTO [MSG] [Var1] = @p1, [Var2] = @p2
阅读后,我相信同样的逻辑也适用
有人认为这会受到SQL注入攻击吗?您所引用的帖子中的第二个答案是: LINQ to SQL使用带 参数
它不会将属性值连接到一个大的插入。。。值(“…”、“…”)否,但无论如何都应该验证用户数据。DataContext的底层操作是通过使用参数化SQL的SqlCommand进行的 因此,您的insert语句将如下所示:
var newMsg = new Msg
{
Var1 = var1,
Var2 = var2
};
using (AppDataContext appDataContext = new AppDataContext(ConnectionString))
{
appDataContext.CClass.InsertOnSubmit(newMsg);
appDataContext.SubmitChanges();
}
INSERT INTO [MSG] [Var1] = @p1, [Var2] = @p2
我不确定它是否。。。这只是一个参数化的命令。execute_sql用于在TSQL中执行相同的操作。参数化的用户输入不会被注入。注入攻击仅在串联用户输入时适用。