SQL语句中特别字符的处理办法[MSSQL防范]
本文“SQL语句中特别字符的处理办法[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
在数据库的利用时,常常会在sql语句中碰到一些特别字符,那么这些字符应当若何处理呢?下面就将为您介绍SQL语句中特别字符的处理办法,供您参考.
在sql语句中,有些特别字符,是sql保存的.比方 ' [ ] 等.我们可以先看看它们的用法.
当需求查询某数据时,加入条件语句,或着当你需求insert记录时,我们用 ' 来将字符范例的数据惹起来.比方:
Select * from Customers where City = 'London'
当表的名字或列的名字中,含有空格等一些特别字符时,我们需求用[] 将表名惹起来,奉告语法解析器,[]号内的才是一个完好的名称.比方
Select * from [Order Details]
假如,字符数据中,含有 ' 改怎么办呢?其实,好多人在这里并没有处理字符川中 ' 标记,才造成sql 注射危险.就那上面的那个例子.在Sql语句拼接的时代,比方
string sql = "select * from Customers where CustomerID = '" + temp + "'";
假如,我给temp赋值为 Tom' or 1=1 ---
那么你拼接起来的语句为 select * from Customers where CustomerID = 'Tom' or 1=1 --- '
哈哈,1=1 衡为真,---会把背面的sql语句注释掉.而前面因为有输入的 ' 而使的语句是合理的.那or的条件,会把全部的记录都选出来.这就是sql注入.在做用户登陆时,假如没有处理该问题,那你的系统受危害的大概性会很高的.
若何处理字符数据中的 ' 标记呢? 办法很简单,用两个 ' 标记替换一个. 比方,其实际传入的值为Lon'don,处理后为
Select * from Customers where City = 'Lon''don'
便可以了.
假如表或列的名称中含有 [ 或 ] 字符呢?比方Select * from [Order] Details],那中间 ] 标记岂不是先和第一个[ 配了.背面的就是不法的了.怎么办呢? 简单,利用 ]] 替换 ] .关于[,则无须处理.那就该为
Select * from [Order]] Details].
以上是“SQL语句中特别字符的处理办法[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |