给大家一个防止外部提交的函数
在config.asp后面加上这样一串代码
function ChkPost()
dim server_v1,server_v2
chkpost=false
server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
if mid(server_v1,8,len(server_v2))<>server_v2 then
chkpost=false
else
chkpost=true
end if
end function
然后在那些问题页面里找个合适的位置插入以下代码:
if not ChkPost() then
response.write "请不要尝试漏洞或者请您关闭!"
response.end
end if
看不懂的朋友可以看看下面的例子:
文件:clearpk.asp
<!--#include file="config.asp" -->
<!--#include file="conn.asp" -->
<%
n=request.form("username")
p=request.form("userchr")
if instr(n,"")<>0 or instr(n,";")<>0 or instr(n,"&")<>0 or instr(n,"%")<>0 then
response.write "您所输入的数据包含非法字符,对不起!"
response.end
end if
if instr(p,"")<>0 or instr(p,";")<>0 or instr(p,"&")<>0 or instr(p,"%")<>0 then
response.write "您所输入的数据包含非法字符,对不起!"
response.end
end if
if n<>"" and p<>"" then
if not ChkPost() then
response.write "请不要尝试漏洞或者请您关闭!"
response.end
end if
set rs1 = Server.CreateObject("ADODB.Recordset")
sql="select * from Character where AccountID="&n&" and Name="&p&" and pklevel<>3"
rs1.open sql,conn,1,3
if rs1.eof or rs1.bof then
防止通过网页修改数据库的方法之一
对所有.asp文件进行查找,凡maxlength的地方请注意:
把所有这样的语名通通改为maxlength=18及以下,例如角色id你只需要maxlength=10 就可以了,只有身份证需要18长度,其实的全部改小就可以了。
有的就出在了maxlength=40 在地方,别人可以在那儿打入完整的命令,并且会执行。
另外对每个输入的地方加进判断,不让输入以下字符: " ^ < > & @ . ` = 就可以防住大多数的破坏
商业完整版游戏发布站程序免费下载:www.98youx.com
function ChkPost()
dim server_v1,server_v2
chkpost=false
server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
if mid(server_v1,8,len(server_v2))<>server_v2 then
chkpost=false
else
chkpost=true
end if
end function
然后在那些问题页面里找个合适的位置插入以下代码:
if not ChkPost() then
response.write "请不要尝试漏洞或者请您关闭!"
response.end
end if
看不懂的朋友可以看看下面的例子:
文件:clearpk.asp
<!--#include file="config.asp" -->
<!--#include file="conn.asp" -->
<%
n=request.form("username")
p=request.form("userchr")
if instr(n,"")<>0 or instr(n,";")<>0 or instr(n,"&")<>0 or instr(n,"%")<>0 then
response.write "您所输入的数据包含非法字符,对不起!"
response.end
end if
if instr(p,"")<>0 or instr(p,";")<>0 or instr(p,"&")<>0 or instr(p,"%")<>0 then
response.write "您所输入的数据包含非法字符,对不起!"
response.end
end if
if n<>"" and p<>"" then
if not ChkPost() then
response.write "请不要尝试漏洞或者请您关闭!"
response.end
end if
set rs1 = Server.CreateObject("ADODB.Recordset")
sql="select * from Character where AccountID="&n&" and Name="&p&" and pklevel<>3"
rs1.open sql,conn,1,3
if rs1.eof or rs1.bof then
防止通过网页修改数据库的方法之一
对所有.asp文件进行查找,凡maxlength的地方请注意:
把所有这样的语名通通改为maxlength=18及以下,例如角色id你只需要maxlength=10 就可以了,只有身份证需要18长度,其实的全部改小就可以了。
有的就出在了maxlength=40 在地方,别人可以在那儿打入完整的命令,并且会执行。
另外对每个输入的地方加进判断,不让输入以下字符: " ^ < > & @ . ` = 就可以防住大多数的破坏
商业完整版游戏发布站程序免费下载:www.98youx.com
Tags:
作者:佚名评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论