主题:  请教热心版主蓝鲸,解答小弟如下问题!

goweizi

职务:普通成员
等级:1
金币:0.0
发贴:122
注册:2002/11/8 11:12:57
#12006/8/23 9:32:22
事例一
====================
  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
  response.write "<br><br><center>"
  response.write " "
  response.write "你提交的路径有误,禁止从站点外部提交数据请不要乱改参数!"
  response.write " "
  response.end
  end if


事例二
====================
if instr(request.servervariables("http_referer","http://"&request.servervariables("host" )<1 then
response.write "处理 URL 时服务器上出错。 "
  response.end
  end if


请问两者有何不同....那一个好一点??
还有一个问题,把代码直接放到代码中 与 用INCLUDE这个代码的文件,效果是一样的吗?推荐那一个?



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
注册:2001/12/20 15:57:57
#22006/8/23 9:59:17
mid是否改用left更好,另外把地址字符串改成全部大写或小写后比较。


非常大鱼

goweizi

职务:普通成员
等级:1
金币:0.0
发贴:122
注册:2002/11/8 11:12:57
#32006/8/23 10:58:17
那...最终改成什么???(我还在学习中....)



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
注册:2001/12/20 15:57:57
#42006/8/23 15:13:27
ComeUrl=lcase(trim(request.ServerVariables("HTTP_REFERER")))
if ComeUrl="" then
    response.write "<br><p align=center><font color='red'>对不起,为了系统安全,不允许直接输入地址访问本系统的后台管理页面。</font></p>"
    response.end
else
    cUrl=trim("http://" & Request.ServerVariables("SERVER_NAME"))
    if mid(ComeUrl,len(cUrl)+1,1)=":" then
        cUrl=cUrl & ":" & Request.ServerVariables("SERVER_PORT")
    end if
    cUrl=lcase(cUrl & request.ServerVariables("SCRIPT_NAME"))
    if lcase(left(ComeUrl,instrrev(ComeUrl,"/")))<>lcase(left(cUrl,instrrev(cUrl,"/"))) then
        response.write "<br><p align=center><font color='red'>对不起,为了系统安全,不允许从外部链接地址访问本系统的后台管理页面。</font></p>"
        response.end
    end if
end if

这是本人的代码,希望有参考价值


非常大鱼

goweizi

职务:普通成员
等级:1
金币:0.0
发贴:122
注册:2002/11/8 11:12:57
#52006/8/24 16:45:10
把代码直接放到asp代码中 与 用INCLUDE这个代码的文件,效果是一样的吗?推荐那一个?



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
注册:2001/12/20 15:57:57
#62006/8/25 11:38:18
你上述代码就是对字符串的大小写兼容性还有顾及,因服务器或软件原因,得到的字符串大小写可能有些不同,因些全部转化后再判断更好些


非常大鱼