解读ASP编程菜鸟易犯的一个错误(3)_ASP教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:解析ASP连接MSSQL的错误: 拒绝访问
在一次ASP程序中不能正常连接MSSQL出现出错信息如下: 以下为引用的内容: HTTP/1.1 200 OK Server: Microsoft-IIS/5.1 Date: Sun,

其实这些字符是对你程序中SQL语言的欺骗,而成功进入的

大家看:开始程序SQL中是对表进行查询满足user= "&user&" and pass= "&pass&" "条件的记录

sql="select * from 表 where user= "&user&" and pass= "&pass&" "

我而输入上面的代码后就成了:

sql="select * from 表 where user= a or 1 = 1 and pass= a or 1 = 1 "

大家看看,能有不进入的理由吗??给我一个不进入的理由,先!

以上USER PASS字段为字符型 如果是数字型也一样的道理!

解决方法:

一、函数替代法:

用REPLACE将用户端输入的内容中含有特殊字符进行替换,达到控制目的啊!sql="select * from 表 where user= "&replace(user," "," ")&" and pass= "&replace(pass," "," ")&" "

这种方法每次只能替换一个字符,其实危险的字符不只是" ",还有如">"、"<"、"&"、"%"等字符应该全控制起来。但用REPLACE函数好象不太胜任那怎么办呢??

二、程序控制法

用程序来对客户端输入的内容全部控制起来,这样能全面控制用户端输入的任何可能的危险字符或代码,我就的这个方法!

以下为引用的内容:
<%
捕捉用户端提交的表单内容
user=request.from("user")
pass=request.from("pass")
...
循环控制开始
for i=1 to len(user)
用MID函数读出变量user中i 位置的一个字符
us=mid(user,i,1)
将读出的字符进行比较
if us=" " or us="%" or us="<" or us=">" or us="&" then
如果含有以上字符将出错提示,不能含有以上特殊字符
response.redirect "err2.htm"
response.end
end if
next
...
%>

分享:如何在Asp中设计跨越域的Cookie
Cookie简介 首先,我们对Cookie做一个简单的介绍,说明如何利用ASP来维护cookie。 Cookie是存储在客户端计算机中的一个小文件,这就意味着每当一个用户访问你的站点,你就可以秘密地

共3页上一页123下一页
来源:模板无忧//所属分类:ASP教程/更新时间:2009-08-14
相关ASP教程

ASP教程Rss订阅编程教程搜索