正 文:
现在有些IDC为了服务器的稳定运行,会给服务器安装金盾防火墙来防止CC/DDOS攻击等,这本来是一件好事,可以有效的阻止这些非法攻击,但是由于开启了金盾防火墙,所有的网址后面会出现随机符:?jdfwkey=jkd3k类似这样的。
jdfwkey 含义解读:j(金)d(盾)f(火-fire)w(墙-wall)key(验证码)=hj67l9(随机码)。
当开启了金盾防火墙后,根据策略不同,一般有两种情况发生:
(一)可能所有的网址后面都会自动添加 jdfwkey 验证码;
(二)也有可能每个新IP第一次访问网站时出现 jdfwkey 验证码,在接下来的一段时间内(一般为24小时内)不再出现 jdfwkey,但是超过一定的时间后(如24小时),又会自动出现 jdfwkey 验证码。
开启金盾防火墙的好处就是可以防止ddos之类攻击,但是今天飘易要说的不是它的好处,而是它的严重弊端!
虽然开启金盾后,用户通过浏览器(默认支持javascript)可以正常浏览网站内容,真正的流程是:
打开网页 --> 获取一段跳转的JS代码(搜索引擎会卡在这里) --> 真正的网页。
大家都知道,搜索引擎在抓取网站页面的时候,是不支持javascript代码的,更不会执行任何js代码。开启金盾防火墙后,搜索引擎在抓取网页的时候,只能抓取到下面的这段提示“访问本页面,您的浏览器需要支持JavaScript”的源码:
>7)|((ab[cb]<<1)&0xff);}bb="";for(cb=1;cb访问本页面,您的浏览器需要支持JavaScript
The browser needs JavaScript to continue
这根本不是网页原始代码,搜索引擎自然会认为你的网站出现了严重问题,因为所有的页面都返回了这样的毫无意义的js代码。结果可想而知,时间一长,搜索引擎接下来就是要降权、K站。
【解决方法:】
如果我们设计的winform程序,用户定时发出请求,这类请求完全正常,只是防火墙误杀了。我们可以在winform里放置一个webbrowser,当检测到出现上述特征代码时,启用webbrowser访问网页一次后,再次使用HttpWebRequest 获取网页源码即可。原理就是利用了 webbrowser 可以执行javascript代码的特点。
string html = getHtml(g_url, "utf-8"); //利用HttpWebRequest获取网页源码
if (html.ToLower().Contains("needs javascript to continue"))
{
string jdfwkey = "检测到服务器启用了防火墙! 时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "\r\n";
StreamWriter sw = File.AppendText("error.txt");
sw.Write(jdfwkey);
sw.Close(); sw.Dispose();
webBrowser3.Navigate(g_url); //启用浏览器访问一次
//* ---------------------
int i = 0;
while (i < 20) { Application.DoEvents(); Thread.Sleep(100); i++; }
while (i < 100)
{ //延时
Application.DoEvents(); Thread.Sleep(100); i++;
if (webBrowser3.ReadyState == WebBrowserReadyState.Complete && (webBrowser3.StatusText == "完成" || webBrowser3.StatusText == "Done")) break;
}
//* ---------------------
goto endthis;
 
亲,或许有关 ---
"服务器防火墙打开后百度抓取失败"
教程及解决方案到这里 -->> 〖狸窝宝典〗有答案!如没有,请反馈给客服qq876292449
㊣狸窝- 为用户提供解决方案! 如需客服(QQ876292449)人工协助解决问题请升级vip,这里升级:
http://www.leawo.cn/do.php?ac=rg
成为vip后有什么好处?
http://www.leawo.cn/space-1-do-thread-id-28884.html

5392

被折叠的 条评论
为什么被折叠?



