sql注入问题 请问:字符串已经将一个单引号替换成2个单引号后,还会有注入的可能吗,如可能请给出例子。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 鬼知道还有什么不为我们所知的黑客技术,好像url后面带参数也会被注吧? 是这样的,我已经将1个单引号替换成2个单引号,并且每个页面的url参数都通过cint处理。 将有可能出现的关键字也进行适当替换,比如insert,update,or等等。 请给出,1个单引号转换成2个单引号后还能被注入的可能。例如:var str = "";sql="select * from table1 where field1='"+str+"'";//假如str是页面url传入的参数。 sql="select * from table1 where field1='"+str+"'";这种还是用参数比较妥当。 sql="select * from table1 where field1='"+str+"'";这种不会有注入了。 我总结了一下SQL注入,有几种方式,仅供参考:1。SqlParameters参数方式.例如: SqlCommand SqlCommand1 = new SqlCommand("insert into bug_picture(RBP_ID, RB_CODE, RBP_NAME,RBP_FILES) VALUES(@RBP_ID, @RB_CODE, @RBP_NAME, @RBP_FILES) "); SqlCommand1.CommandType = System.Data.CommandType.Text; SqlCommand1.Connection = conSql; SqlCommand1.Parameters.Add("@RBP_ID", System.Data.SqlDbType.Int, 4).Value = sPhotoID; SqlCommand1.Parameters.Add("@RB_CODE", System.Data.SqlDbType.VarChar, 64).Value = bugCode; SqlCommand1.Parameters.Add("@RBP_NAME", System.Data.SqlDbType.VarChar, 200).Value = BugPhotoName; SqlCommand1.Parameters.Add("@RBP_FILES", System.Data.SqlDbType.Image, 2147483647).Value = buffer; SqlCommand1.ExecuteNonQuery();2。参数数组方式。例如: public DataSet GetDataSetTaskHistory(params string[] strSQL) { string strQuery = "select * from vw_search_task_record"; if (strSQL[0] != "") { strQuery += " where task_id=" + strSQL[0] + " and taskrd_starttime>='" + strSQL[1] + "'" + " and taskrd_endtime<='" + strSQL[2] + "'"; } }3.SQL语句分析方式.分析语句中是否有不合法的注入单词. 就像“Knight94(愚翁) ( ) 信誉:110 Blog ”所讲的,采用参数形式是最安全的作法,不一定要用存储过程,因为ACCESS没人会去用存储过程吧我做的B/S程序都是用参数形式传递所有用户提交的东西 sql="select * from table1 where field1='"+str+"'";这种还是用参数比较妥当。如果str中有单引号呢str.replace("'","''"); 如何改变文件大小 Net技术提问规则和回答问题准则(散分) 怎样将本地文件夹机器里面的内容拷贝到另外一台机器上 短信猫问题 这是怎么了? 大家推荐提点一下,那些书籍适合C#入门与掉高 为什么我存入sql server表中的数字都被四舍五入了啊? C# 根据GPS经纬度画轨迹 生成的程序不需要安装类似.net framework就可以用的语言有哪些? 请教一个关于winform组合快捷键和快捷键的问题 反射?!未将对象引用设置到对象的实例 在方法前用这个[]是什么意思?详细如下:
并且每个页面的url参数都通过cint处理。
例如:
var str = "";
sql="select * from table1 where field1='"+str+"'";
//假如str是页面url传入的参数。
这种不会有注入了。
1。SqlParameters参数方式.例如:
SqlCommand SqlCommand1 = new SqlCommand("insert into bug_picture(RBP_ID, RB_CODE, RBP_NAME,RBP_FILES) VALUES(@RBP_ID, @RB_CODE, @RBP_NAME, @RBP_FILES) ");
SqlCommand1.CommandType = System.Data.CommandType.Text;
SqlCommand1.Connection = conSql;
SqlCommand1.Parameters.Add("@RBP_ID", System.Data.SqlDbType.Int, 4).Value = sPhotoID;
SqlCommand1.Parameters.Add("@RB_CODE", System.Data.SqlDbType.VarChar, 64).Value = bugCode;
SqlCommand1.Parameters.Add("@RBP_NAME", System.Data.SqlDbType.VarChar, 200).Value = BugPhotoName;
SqlCommand1.Parameters.Add("@RBP_FILES", System.Data.SqlDbType.Image, 2147483647).Value = buffer;
SqlCommand1.ExecuteNonQuery();2。参数数组方式。例如:
public DataSet GetDataSetTaskHistory(params string[] strSQL)
{
string strQuery = "select * from vw_search_task_record";
if (strSQL[0] != "")
{
strQuery += " where task_id=" + strSQL[0] + " and taskrd_starttime>='" + strSQL[1] + "'" + " and taskrd_endtime<='" + strSQL[2] + "'"; }
}3.SQL语句分析方式.分析语句中是否有不合法的注入单词.
如果str中有单引号呢str.replace("'","''");