因此,楼主的办法,其实也存在问题的
1 使用COMMAND
这是一样的啊,你的COMMAND也是要执行SQL语句嘛!问题不在使用什么对象上,而是SQL语句!
2 不使用连接字符串
恩,那是可以让你的SQL语句保证良好,可是,不能连接字符串如何可以获取用户提交的信息呢?
几乎不可能,当然也存在可能的,就是通过程序去判断用户的提交值,可惜,这样做的话,程序的效率就大大出问题了!!!
比如:
<%
'http://www.xx.com/xx.asp?id=1
sql="select * from table"
do while not rs.eof
if rs("id")=request.querystring("id") then
‘执行操作
exit do
else
rs.movenext
end if
loop
%>
比如http://www.ss.com/xx.asp?id=1
这是一个查看1号记录的ASP典型语法
<%
sql="select * from table where id = " & request.querystring("id")
'response.write sql
'select * from table where id = 1
rs.open sql,conn,1,1
%>
注意,这样就会被注入了!为什么呢?
http://www.ss.com/xx.asp?id=;declare @a varchar(200);set @a ='drop TABLE '+(SELECT top 1 name FROM sysobjects WHERE (xtype = 'U'));exec(@a);--
看,就这样,ASP里就变成了!
<%
sql="select * from table where id = " & request.querystring("id")
'response.write sql
'select * from table where id = ;declare @a varchar(200);set @a ='drop TABLE '+(SELECT top 1 name FROM sysobjects WHERE (xtype = 'U'));exec(@a);--
rs.open sql,conn,1,1
%>