小编use*_*200的帖子

在nhibernate中防止Sql注入

在我的项目中,我有一个方法,它将serviceTags作为nhibernate动态查询中的字符串参数输入,并用''替换它.现在它已经参数化但仍然是对sql注入的威胁.所以我的问题是在没有威胁的情况下获得这种功能我该怎么办?用户输入的类型/长度检查已经在我的脑海中,我认为这不会解决整个威胁.

 public Dictionary<string, string> GetCollectionStatus(string serviceTags)
 { using (var session = m_SessionFactory.OpenSession())
        {
           foreach (var resultParts in session.CreateSQLQuery(string.Format("select servicetag , " +
                                                                             "DiagnosticStatus from AssetOverview where servicetag IN ('{0}')", 
                                                                             serviceTags.Replace(",", "','"))).List())
            {
                collectionStatus.Add(((object[])(resultParts))[0].ToString(), ((object[])(resultParts))[1].ToString());
            }
        }
        return collectionStatus;
    }
Run Code Online (Sandbox Code Playgroud)

c# sql nhibernate

5
推荐指数
1
解决办法
2751
查看次数

标签 统计

c# ×1

nhibernate ×1

sql ×1