Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LINQ to SQL InsertOnSubmit()是否受到SQL注入攻击?_C#_.net_Linq To Sql_Sql Injection - Fatal编程技术网

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中执行相同的操作。参数化的用户输入不会被注入。注入攻击仅在串联用户输入时适用。