当前位置: 代码迷 >> VFP >> 关于vfp伪造Referer,该怎么处理
  详细解决方案

关于vfp伪造Referer,该怎么处理

热度:2327   发布时间:2013-02-26 00:00:00.0
关于vfp伪造Referer
各位大侠,我是一名教师,我正在用vfp9写一个软件,用于采集网络上的一些免费教学资源,供自己和同事教学上使用。术业有专攻,所以对vfp我很肤浅。现在遇到如下问题,请求大家帮助。

1、在试图采集 http://www.wsbedu.com/kejian/edudown4-3281-p81k 这个网站的课件资源时,发现即使分析源代码得到“本地下载”所对应的链接 http://www.wsbedu.com/df/dfp.asp?FN=chu/xi/sp/8101 也无法下载,会弹出“非法链接”窗口,只能通过在页面上点击“本地下载”才能下载成功。
  请问这个网站是不是启用了防盗链机制?我写这个软件,其实就是为了方便收集一些教学资源供学校使用,我也知道盗链可耻。
  听别人说伪造Referer来源可以突破防盗链,请问vfp具体该怎么做呢?我使用了以下代码,没有一点作用。

cUrl = "http://www.wsbedu.com/df/dfp.asp?FN=chu/xi/sp/8101"

http = CREATEOBJECT("MSXML2.XMLHTTP") 
Http.open("GET",cUrl,.F.)
Http.setRequestHeader("Referer","http://www.wsbedu.com/" )
Http.send()

thisform.Hyperlink1.NavigateTo("cUrl")

2、在采集有些需要登陆的网站时,听说可以通过伪造 Cookie 的方式实现自动登陆,vfp 具体该怎么做呢?
我用 WebBrowser 控件实现了模拟点击的方式自动登陆我校网站,但换一个网站这段代码并不具备通用性,所以想研究发送 Cookie 的方式来实现登陆。

thisform.WebBrowser1.Document.All( "UserName").Value = "XXX"  
thisform.WebBrowser1.Document.All( "UserPassword").Value = "XXXXXXX"  
thisform.WebBrowser1.Document.All( "Submit").Click
cookieStr = thisform.WebBrowser1.Document.cookie
STRTOFILE(cookieStr ,"c:\cCookie.txt")

这段代码中:c:\cCookie.txt 里保存的是不是就是我校网站的 Cookie ?

另:提供我校网站相关地址:
http://www.fljdzx.com/User/User_login.asp
http://www.fljdzx.com/User/User_ChkLogin.asp

用户名:测试用户名
密码:aaaaaaaa

我也知道大家很忙,所以不会一遇到问题就发问,我在网络上搜索了好几天,一直找不vfp的相关例子,有的只是asp/PHP/VB/C#等方面的内容。除了vfp 其它的我也看不懂,请大家帮帮我。


我现在的做法是:

1.在 WebBrowser 里打开 http://www.wsbedu.com/kejian/edudown4-3281-p81k 
2.模拟鼠标点击“本地下载”

以上方法局限很多,首先,WebBrowser必须完全加载页面,这个页面里有图片、广告等,加载需要较长的时间,其次,这种方法感觉也不是很稳定,有时能成功,有时不能成功。

WebBrowser 能不能像IE或其它浏览器一样,可以不加载图片、声音等网页元素?

------解决方案--------------------------------------------------------
问题1:我的通常做法也是 模拟点击 ,确实因为不同的网页,代码不可能通用,我估计其他开发工具也不可能通知。

问题2:没用过。