日期:2014-05-17  浏览次数:20814 次

(求助)ASP怎么实现防止别人调用你的接口数据,但又能指定某2个域名可以调取(解决问题有赏)
(求助)ASP怎么实现防止别人调用你的接口数据,但又能指定某几个域名可以调取,帮忙下.
(帮忙解决此问题的送备案查询功能接口10000次数据调取,什么语言的都有)

------解决方案--------------------
用Request.ServerVariables判断即可

http://www.cnblogs.com/starcrm/archive/2009/04/07/1430824.html
------解决方案--------------------
<% 
Function isSelfRefer() 
Dim sHttp_Referer, sServer_Name 
sHttp_Referer = CStr(Request.ServerVariables("HTTP_REFERER")) 
sServer_Name = CStr(Request.ServerVariables("SERVER_NAME")) 
If Mid(sHttp_Referer, 8, Len(sServer_Name)) = sServer_Name Then 
IsSelfRefer = True 
Else 
IsSelfRefer = False 
End If 
End Function 
%>
<% 
if isSelfRefer() = False then 
response.redirect ("/index.asp") 
response.end 
end if 
%>

CStr(Request.ServerVariables("HTTP_REFERER")) 是获得来源页面的URL。如果是直从地址栏直接打开,则为空。CStr(Request.ServerVariables("SERVER_NAME"))是目前所在的服务器域名。不包含“HTTP://”。Mid(sHttp_Referer, 8, Len(sServer_Name))将来源页面的第八个字符开始,也就是去掉前面的“http://”,取与服务器域名相同长度的字符串。然后进行对比,如果相同,那就是内容来源。否则就是外部来源。