Beispielcode von DAL:Ist diese Art der Ausführung von SQL Injection sicher?
Ich verwende C# und SQL Server als Datenbank.
schrieb ich Singletons von Datenbankobjekt, und Beispiel Funktion, die Prozedur von MSSQL exceute, DbCommand und Datenbank-AddInParameter mit
ich Themen gefunden, die über parametes und SQL-Injection spricht aber ich darüber wissen wollen spezifische Art und Weise
private Database m_db;
public Database getDB
{
get
{
if(m_db == null)
m_db = DatabaseFactory.CreateDatabase("ConnectionString");
return m_db;
}
}
public void Example(string Name)
{
DbCommand dbcmd = getDB.GetStoredProcCommand("dbo.Example");
getDB.AddInParameter(dbcmd, "p_Name", DbType.String, Name);
getDB.ExecuteNonQuery(dbcmd);
}
dank
Dies ist von C# Seite in Ordnung, aber es hängt davon ab, wie Sie Ihre Prozedur aussieht. –
Es hängt ganz davon ab, welche Art von Befehlen im SP gespeichert sind. In C# -Seite ist es sicher zu 'AddInParameter' zu verwenden, aber in SQL-Seite kann eine andere Sache sein, wenn es dynamische Abfrage mit String-Verkettung enthält. –
Also solange ich String-Verkettung nicht als Abfrage verwenden, ist es sicher vor SQL-Injektion? @TetsuyaYamamoto –