In PetaPoco's home page gibt es eine Erwähnung, dass PetaPocos SQL-Builder (Sql-Objekt) vor SQL-Injection schützt. Aber schützt die Query (String-Abfrage, Parameter) -Methode vor SQL-Injection?Schützt PetaPocos Abfrage (String Query, Parameter) vor SQL-Injection?
SQL Builder ist sicher:
var id = 123;
var a = db.Query<article>(PetaPoco.Sql.Builder
.Append("SELECT * FROM articles")
.Append("WHERE [email protected]", id)
);
Aber ist es mit String-Abfrage sicher, wo Parameter wie folgt übergeben werden?
var id = 123;
var a = db.Query<article>("SELECT * FROM articles WHERE [email protected]", id);
Ja, wenn Sie versuchen, den Quellcode von PetaPoco auf github zu betrachten. Es ist schließlich SqlParameter verwenden. https://github.com/CollaboratingPlatypus/PetaPoco/blob/development/PetaPoco/Database.cs#L952 – ngeksyo