关于判断来源URL是否来自外部的函数的Public Function CheckOuterUrl()的说明:
建议直接修改Public Function CheckOuterUrl()这个函数,item/download.asp 文件不用改。
官方原代码
'=============================================================
- '函数作用:判断来源URL是否来自外部
- '=============================================================
- Public Function CheckOuterUrl()
- On Error Resume Next
- Dim server_v1, server_v2
- server_v1 = LCase(Trim(Request.ServerVariables("HTTP_REFERER")))
- server_v2 = LCase(Trim(Request.ServerVariables("SERVER_NAME")))
- CheckOuterUrl = True
- If Mid(server_v1,8,len(server_v2))=server_v2 Then CheckOuterUrl=False
- End Function
建议改为:
- '=============================================================
- '函数作用:判断来源URL是否来自外部,禁止从外部提交数据
- '=============================================================
- Public Function CheckOuterUrl()
- On Error Resume Next
- Dim server_v1, server_v2
- server_v1 = Cstr(Trim(Request.ServerVariables("HTTP_REFERER")))
- server_v2 = Cstr(Trim(Request.ServerVariables("SERVER_NAME")))
- CheckOuterUrl = True
- If Mid(server_v1,8,len(server_v2)) <> server_v2 Then CheckOuterUrl = False
- End Function
总感觉还是使用 If Not KS.CheckOuterUrl Then 更规范些。
另外,对于判断来源URL是否来自外部,还应该在登录等页面(特别是后台)进行验证吧?