Entity Framework Code First - SQL-Injection-Prävention
Ich bin mit EF Code-First-Ansatz mit MySQL.
Frage ich mich, ob EF in diesem Ansatz integrierten Schutz gegen SQL-Injection, oder muss ich zum erstellen von SQL-string der Abfrage in der MySqlCommand und fügen Sie einige Parameter, um sicher zu sein von, dass die Angriffe ?
Ich glaube, ich habe nicht zu aber ich würde gerne sicher sein.
Bearbeiten (code-snippets Beispiel):
MyContext cont = new MyContext();
cont.Comment.AddObject(new Comment { Content = "my string" });
cont.SaveChanges();
oder
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
Den 1. Ansatz sehr viel schneller-code für mich
- Es würde wahrscheinlich helfen, wenn Sie mir ein Codebeispiel, die Sie denken, sind möglicherweise anfällig für SQL injection. Wenn du meinst, was ich denke, du meinst, die Antwort ist Nein, müssen Sie nicht haben, etwas besonderes zu tun, aber ich kann mir denken, andere Dinge, die Sie bedeuten könnten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre erste code ist SQL-Injection Beweis.
Alles, was Sie an EntityFramework übergeben werden als Befehl in der inneren IDbCommand.
Aber Vorsicht, wenn Sie ausführen, eine direkte Anfrage mit Entity Framework.
Ein Satz aus der MSDN-Website.
EF-s LINQ to Entities (wie in deinem ersten Beispiel) kümmert sich um die Verhinderung von SQL-injection-Angriffe.