質問: Entity Frameworkをハッキングすることはできますか? > EFを使用するアプリケーションで**SQLインジェクション**を実行することは可能ですか? > > もしそうなら、誰かがそれがどのように行われるかもしれないかの完全な例を教えてもらえますか? C#でEF固有のものが見つかりませんでした。
回答: 注意してください: > 開発者がADO.NETのラッパーとしてEFを使用し、FromSQLを使用するのは非常に簡単です。もちろん、これは意図されたものでもEFの通常の使用でもありませんが、私はそれを見ました。カミロ・テレヴィント > > REF: 未処理のSQLクエリ さらに、実際には「SQLインジェクション」ではなく、意図していない結果を生み出すために生のSQLを変更してデータを変更することが目標の1つであるため、 ASP.NET - **オーバーポスティング** /マス・アサインメント・モデル・バインディングセキュリティ リンクから直接取ったサンプル: あなたは/クラスをモデル化する: ``` public class Person { public int ID { get; set; } public string First { get; set; } public string Last { get; set; } public bool IsAdmin { get; set; } } ``` あなたの`Controller`どこかで: ``` [HttpPost] [ValidateAntiForgeryToken] public async Task Create(Person person) { if (ModelState.IsValid) { _context.Add(person); await _context.SaveChangesAsync(); return RedirectToAction("Index"); } return View(person); } ``` > 理論上のEvilUserがPersonに「IsAdmin」プロパティがあることがわかった場合、「過ぎる」可能性があり、HTTP POSTにフィールドを追加して`IsAdmin=true`を設定し`IsAdmin=true` 。 **それを防ぐために、ここにコードには何もありません** 。 > > だから、「悪意のあるユーザー」は意図しない結果を出すために`sql injection`を理解する必要さえない。それを防ぐ方法については記事を読んでください( `BindAttribute` 、View Modelsなど)。 Hth。