一般来说,在更新DataTable或是DataSet时,如果不采用SqlParameter,那么当输入的Sql语句出现歧义时,如字符串中含有单引号,程序就会发生错误,并且他人可以轻易地通过拼接Sql语句来进行注入攻击。
string sql
= update
Table1 set name = 'Pudding' where ID = '1';//未采用SqlParameter
SqlConnection
conn = new SqlConnection();
conn.Connect
本文实例讲述了MySQL解决SQL注入的另类方法。分享给大家供大家参考,具体如下:
问题解读
我觉得,这个问题每年带来的成本可以高达数十亿美元了。本文就来谈谈,假定我们有如下 SQL 模板语句:
select * from T where f1 = '{value1}' and f2 = {value2}
现在我们需要根据用户输入值填充该语句:
value1=hello
value2=5
我们得到了下面的 SQL 语句,我们再提交给数据库:
select * from T where