防止外部提交表单

<%

server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))//获取地址栏中的地址,并将它赋给server_v1

server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))//获取url中的域名信息,赋给server_v2


if mid(server_v1,8,len(server_v2))<>server_v2 then 或者用 if Instr(server_v1, "show_index")=0 then//就是地址没有show_index的时候
     response.write "<script>alert('警告!你正在从外部提交数据!!请立即终止!!\n你的IP已经被记录,如果再次来');</script>"

QQ:9231333

Response.Redirect "http://www.yy66.net
"
end if

%>

注:
1.判断链接的地址是否就是自己服务器的,如果不是,说明是盗链的,这样就可以简单地实现防盗链。

2.Mid(server_v1,8,Len(server_v2))中为什么是8:
a.Request.ServerVariables("HTTP_REFERER")返回的地址中包括[http://]的开头,(返回调用这个asp页面的是哪一个页面,即看这个页面是被哪个页面所调用的,也就是说:
有a.asp和b.asp两个页面,在a.asp中点击链接到b.asp,或是a.asp中用表单提交数据到b.asp,或是用脚本跳转到b.asp, 那么在b.asp中用request.servervariables("HTTP_REFERER")方法取得的字符串就是a.asp的URL路径。)
b.而Request.ServerVariables("SERVER_NAME")只是返回服务器名称,不包括[http://],后面也没有文件的路径+文件名。
[http://]就正好7个字符了。所以从第8个字符开始,读取Request.ServerVariables("SERVER_NAME")那么长的字符来比较。

 

你可能感兴趣的:(.net,qq,脚本,asp.net,asp)