关于网友提出的“aspnet aspNet中 Replace函数的用法”问题疑问,本网通过在网上对“aspnet aspNet中 Replace函数的用法”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题:aspnet aspNet中 Replace函数的用法
描述: string title = txtTitle.Text.Trim();
string count = elm1.Value; //这个是读取文本编辑器内的内容
count = count.Replace("'"," ");
count = count.Replace("--"," ");
count = count.Replace(";"," ");
string sql =string.Format("insert into t_users values('"+title+"','"+Server.HtmlEncode(count)+"','"+DateTime.Now.ToString()+"',"+EmceeId+",0)");
因为我在全局文件里进行了防止SQL注入判断,所以我要把里边的敏感字符替换成空或者别的东西,但是好像没效果
因为小弟才疏学浅之前没用过Replace函数 , 根据网上查的学着写了一下 未成功
希望各位帮忙看一下是什么原因? 随便多讲一点
System.Text.RegularExpressions.Regex.Replace(count,"--|——|;|'|",""); //这个也是我搜出来的 各位帮忙解释一下
解决方案1: 我个人比较喜欢用参数的语句
举例入下:
public bool Exists(int CUST_NO)
{
StringBuilder strSql=new StringBuilder();
strSql.Append("select count(1) from CUST");
strSql.Append(" where CUST_NO=:CUST_NO ");
OracleParameter[] parameters = {
new OracleParameter(":CUST_NO", OracleType.Number,4)};
parameters[0].Value = CUST_NO;
return DbHelperOra.Exists(strSql.ToString(),parameters);
}
解决方案2: 这里API和源码例子
一个英文的,一个翻译的:
http://apicodecn.gicp.net/class.do?api=selectByfatherIndex&father=58
http://apicode.gicp.net/class.do?api=selectByfatherIndex&father=58
解决方案3: public string filterSql(string sSql)
{
sSql = sSql.ToLower().Trim();
sSql = sSql.Replace("exec", "");
sSql = sSql.Replace("delete", "");
sSql = sSql.Replace("master", "");
sSql = sSql.Replace("truncate", "");
sSql = sSql.Replace("declare", "");
sSql = sSql.Replace("create", "");
sSql = sSql.Replace("xp_", "no");
sSql = sSql.Replace("'", "");
sSql = sSql.Replace("--", "");
sSql = sSql.Replace(";", "");
sSql = sSql.Replace("\"", "");
return sSql;
}
解决方案4: 只用 replace是防不了注入的,
在网上看过,但未试过。
例如:strTemp = "upupdatedate";
strTemp = strTemp.Replace("update","");
strTemp == update;
解决方案5: public string FilterSQLString(string str)
{
string strTemp =str;
strTemp = strTemp.Replace("'","").Replace(";","");
strTemp = strTemp.Replace("--","").Replace("","&").Trim();
strTemp = strTemp.Replace("<"," <").Replace(">"," >");
return strTemp;
}
解决方案6: 传参数,像这样
insert into t_users values(@title,@count,@DateTime,@EmceeId,0)
要不注入防起来没完
解决方案7: 使用sqlparameter参数
恶意代码关键字过滤
Regex.Replace(text, "select", "");
Regex.Replace(text, "insert", "");
以上介绍了“aspnet aspNet中 Replace函数的用法”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2477566.html