セキュリティホールを修正しているコードを継承しました。ストアドプロシージャが呼び出されたときにSQLインジェクションを処理するためのベストプラクティスは何ですか?
コードは次のようなものです。
StringBuilder sql = new StringBuilder("");
sql.Append(string.Format("Sp_MyStoredProc '{0}', {1}, {2}", sessionid, myVar, "0"));
using (SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["Main"].ToString()))
{
cn.Open();
using (SqlCommand command = new SqlCommand(sql.ToString(), cn))
{
command.CommandType = CommandType.Text;
command.CommandTimeout = 10000;
returnCode = (string)command.ExecuteScalar();
}
}
通常のSQLクエリで同じことを行い、AddParameter
正しいものを使用してパラメーターを追加しますか?