Ton*_*ony 4 entity-framework ef-code-first
我正在使用EF的Code First方法和MySQL.
我想知道该方法中的EF是否内置了针对SQL注入的保护,还是我必须在MySqlCommand中创建SQL字符串查询并添加一些参数以免受这些攻击?
我想我不必,但我想确定一下.
编辑(代码片段示例):
MyContext cont = new MyContext();
cont.Comment.AddObject(new Comment { Content = "my string" });
cont.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
要么
string query = "INSERT INTO Comment(Content)VALUES(@myVal)";
MySqlCommand comm = new MySqlCommand(query);
comm.CommandType = CommandType.Text;
comm.Parameters.AddWithValue("@myVal", "my string");
...and later execute that query
Run Code Online (Sandbox Code Playgroud)
第一种方法为我编码要快得多
您的第一个代码是SQL注入证明.
传递给EntityFramework的任何内容都在内部IDbCommand中作为Command传递.
但要注意,如果您使用EntityFramework执行直接查询.
尽管在LINQ to Entities中可以进行查询组合,但它是通过对象模型API执行的.与实体SQL查询不同,LINQ to Entities查询不是使用字符串操作或连接组成的,并且它们不易受传统SQL注入攻击的影响."
| 归档时间: |
|
| 查看次数: |
7811 次 |
| 最近记录: |