账号通
    

账号  

密码  

22850

查看

46

回复
主题:[分享]升级到7.02版本部分小BUG修复专帖,遇到问题的请看过来了 [收藏主题] 本贴被认定为精华 转到:  
悠客 当前离线

213

主题

15

广播

7

粉丝
添加关注
级别:二年级

用户积分:996 分
登录次数:401 次
注册时间:2010/11/8
最后登录:2019/10/28
悠客 发表于:2010/12/2 10:47:31   | 显示全部帖子 查看该作者主题 楼主 

关于判断来源URL是否来自外部的函数的Public Function CheckOuterUrl()的说明:

建议直接修改Public Function CheckOuterUrl()这个函数,item/download.asp 文件不用改。

官方原代码

  1. '=============================================================

  2. '函数作用:判断来源URL是否来自外部
  3. '=============================================================
  4. Public Function CheckOuterUrl()
  5.   On Error Resume Next
  6.   Dim server_v1, server_v2
  7.   server_v1 = LCase(Trim(Request.ServerVariables("HTTP_REFERER")))
  8.   server_v2 = LCase(Trim(Request.ServerVariables("SERVER_NAME")))
  9.   CheckOuterUrl = True
  10.   If Mid(server_v1,8,len(server_v2))=server_v2 Then CheckOuterUrl=False
  11. End Function

建议改为:

  1. '=============================================================
  2. '函数作用:判断来源URL是否来自外部,禁止从外部提交数据
  3. '=============================================================
  4. Public Function CheckOuterUrl()
  5.   On Error Resume Next
  6.   Dim server_v1, server_v2
  7.   server_v1 = Cstr(Trim(Request.ServerVariables("HTTP_REFERER")))
  8.   server_v2 = Cstr(Trim(Request.ServerVariables("SERVER_NAME")))
  9.   CheckOuterUrl = True
  10.   If Mid(server_v1,8,len(server_v2)) <> server_v2 Then CheckOuterUrl = False
  11. End Function

总感觉还是使用 If Not KS.CheckOuterUrl Then 更规范些。

另外,对于判断来源URL是否来自外部,还应该在登录等页面(特别是后台)进行验证吧?

 
科讯NET交流群 321062970
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
<上一主题 | 下一主题 >
Powered By KesionCMS Version X1
厦门科汛软件有限公司 © 2006-2016 页面执行0.09375秒 powered by KesionCMS 9.0