za1 发表于 2011-12-23 19:12:47

csdn的免费下载原理及其思考

说的是csdn免费下载文件的,我去csdn看了一下,需要登录才可以解析出地址,所以回帖说 “这个太假”,今天我重新拉出来看了看,只能说:“我错了,csdn可以免费!” ,这个结论让我实在是无语~~~~  因为csdn的弱智!
   老习惯,上代码最清楚!vc 简洁,以此为例,我加了许多注释


   VC源代码如下:  

CString webID;               //  声明类型
CString backData;
CString filteredAdd;
CString targetAdd;
void CCSDNDlg::OnBnClickedBtnDload()   //定义 按钮单击事件
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(true);
webID=webAdd.Right(webAdd.GetLength()-(webAdd.Find(_T("source/"),0)+7));  取得文章的id号码,即索引
  //webID=webAdd.Right(7);
//AfxMessageBox(LPCTSTR(webID),0,0);
//
//********************************************************************
//
//********************************************************************
CInternetSession mySession(NULL,0);//建立会话
CHttpFile* myHttpFile=NULL;
CString SiteName=_T("xxp://download.csdn.net/index.php/rest/source/getsourceinfo/")+webID;  就是这个让我无语了,大家可以复制到浏览器里看看是什么东东。
文章id我们取100,结果如下:{"id":"100","title":"\u5b9e\u73b0\u542f\u52a8\u753b\u9762","tag":["\u754c\u9762\u76f8\u5173\u7c7b"],"categoryid":"16006","source_money":"0","username":"chenxh","groupname":null,"sourcesize":"11150","pubdate":"1029340800","updatetime":"2011-08-03 17:39:15","description":"\u6f14\u793a\u5982\u4f55\u5b9e\u73b0\u542f\u52a8\u753b\u9762","isrecommended":"0","status":"1","filetype":"zip","originfile":"200281592917.zip","fileaddr":"\/200281592917.zip","otherlink":"","clicknum":"46","diggnum":"0","fileaddr_prefix":"\/down1","md5":"","isrepeat":"0","alreadyIndex":"1","clickpnum":"75","Operator":"","operate_time":"0","url":"http:\/\/dlwt.csdn.net\/fd.php?i=13301001970&s=1d459b1b095138c98b8670c9435618f0"}
看到了吧 ,红字部分就是下载地址,无语~~~~~
下面的代码就是处理而已,不解释~~~~~~~~~~~~~~~~
myHttpFile=(CHttpFile*)mySession.OpenURL(SiteName);
myHttpFile->ReadString(backData);
//AfxMessageBox(LPCTSTR(backData),0,0);
myHttpFile->Close();
mySession.Close();
/////////////////////////////////////////////////////////////////////////////////////////////
filteredAdd=backData.Right(backData.GetLength()-backData.Find(_T("fd.php?i"),0));
filteredAdd=filteredAdd.Left(filteredAdd.GetLength()-2);
//AfxMessageBox(LPCTSTR(filteredAdd),0,0);
targetAdd=_T("http://dlwt.csdn.net/")+filteredAdd;
//AfxMessageBox(LPCTSTR(targetAdd),0,0);
//void CWebBrowser2::Navigate(LPCTSTR URL, VARIANT* Flags, VARIANT* TargetFrameName, VARIANT* PostData, VARIANT* Headers)
CWebBrowse.Navigate(LPCTSTR(targetAdd),NULL,NULL,NULL,NULL);
}
这个“泄密”的文件时怎么来的呢?找到一篇网上的举报贴子,:

引用
VIP会员下载,经常出现以下提示
Warning: file_get_contents(xxp://download.csdn.net/index.php/rest/source/getsourceinfo/219312) : failed to open stream: HTTP request failed! in /home/www/fd.php on line 124
下载次数被扣减了,却下载不了

看到file_get_contents函数了吗?可以看出,csdn文件下载地址的获取也是这样的!! 就是说,我们取得文件的方式是“官方认证”的!
     实在不敢想象事实是如此!只能说没有漏洞的网站是不存在的! 在网站进行架构的时候要合理,在网站进行验证的时候的时候,要仔细,这样才能最大程度上做出好的网站来~~~~
页: [1]
查看完整版本: csdn的免费下载原理及其思考