一、介绍
暗链也称黑链,即隐蔽链接,是黑帽SEO的作弊手法之一,其目的就是利用高权重网站外链来提升自身站点排名。
一般来说,暗链是由攻击者入侵网站后植入的,暗链在网页页面上不可见或者极易被忽略,但是搜索引擎仍然可以通过分析网页的源代码收录这些链接,如果有大量网站甚至一些高权重的网站都链向它们,积少成多,可以迅速提高权重,获得高额流量。暗链指向的网站绝大多数是博彩、非法游戏私服、虚假医疗、办证等黑灰色产业,其中博彩类域名数量最多。而暗链宿主往往是权重较高的网页,例如政府网站、教育网站等。
二、暗链隐藏方式
暗链主要利用CSS、JS来控制链接的隐藏方式,通过对大量样本的分析,本文总结了几种常用挂暗链的手法。
1、 链接位于页面可见范围之外。可以将position位置属性设置成负数,则链接无法显示在可见页面之内。
<divstyle="position:absolute;left:expression_r(1-900);top:expression_r(3-999);"><a href="暗链">关键词</a></div> <div style="position:absolute; top:-999px;right:-999px;"><a herf="暗链">关键词</a></div>
<div style="text-indent:-9999em; display:block;float:left"><aherf="暗链">关键词</a></div>
元素向前缩进为负值,即在可见范围之外
2、链接颜色与背景色相同,链接文字使用低像素。
<a herf=# style="color:#FFFFFF; ">关键词</a> <a herf=# style="font-size:1px;">关键词</a> <a herf=# style="line-height:1px;">关键词</a>
3、利用跑马灯marquee属性,链接以跑马灯形式迅速闪现,跑马灯的长宽设置很小,同时将闪现的频率设置很大,使得查看页面时不会有任何影响。
<marquee height=1width=4 scrollamount=3000scrolldelay=20000><a href= "暗链">关键字</a></marquee>
4、利用display:none和visibility:hidden隐藏区域里的内容。
<divstyle="display:none;"><a href="暗链">关键字 </a></div><div style="visibility:hidden;"><a href="暗链">关键字 </a></div>
以上四种是惯用的挂暗链的方法,但目前的搜索引擎也开始对这些方法进行识别和打击,如果代码没有任何处理的话,那么这些外链将有可能全部被降权。即便如此,这几种仍然是目前最常见的暗链隐藏方法。为了不被搜索引擎识别,攻击者利用JS向页面中写入ccs样式,并设置其属性,见5,6。由于搜索引擎对这种JS代码的内部实质意义还无法识别,因此也成为了挂暗链的一种常见形式。
5、利用JS向页面中写入ccs样式。
<script language="javascript" type="text/javascript">document.write("<div style='display:none;'>");</script><div><ahref= "暗链">关键字 </a><script language="javascript" type="text/javascript">document.write("</div>");</script>
注:除了设置display:none属性外,也可以设置前面我们提到的其他隐藏方法。
6、利用JS修改样式属性
<div id="anlian"> <a href="暗链">关键字</a></div><script language=javascript>document.getElementById("anlian").style.display="n"+"one"</script>
7、利用遮挡层隐藏暗链。z-index属性可以设置元素的堆叠顺序,z-index值越小其堆叠顺序越靠后,因此可以利用其它层来遮挡暗链。
<divclass="father" style="position:relative"> <div class="topLever" style="position:absolute;left:0;top:0;z-index:999; width:90%;height:100px;"> 遮挡层:可以放图片等 </div> <div class="hideDontent">隐蔽层:可以放暗链</div></div>
8、利用iframe创建隐藏的内联框架
marginWidth,marginHeight为0 则无法显示内联框,可隐藏暗链。
9、利用重定向机制。在跳转之前的页面写入不相关的链接,通过快速跳转到正常页面,使用户无法察觉。
<script> setTimeout("window.location= "index.html",0.1); </script><body leftMargin=0 topMargin=0 scroll=no><div> <a href=“暗链”>关键字 </div></body>
利用setTimeout 在跳转到正常页面index.html之前有0.1s停留在当前页面,页面中的暗链不易被察觉。
<script language="javascript" type="text/javascript"> window.location.href="lianjie";</script>
10、利用标签插入链接。位于网页html源码头部内的标签,提供有关页面的元信息,是搜索引擎判定网页内容的主要根据, 攻击者可以在标签中插入大量与网页不相关的词语以及链接。
<meta http-equiv="refresh" content="1"; url="暗链" /><meta name="xxxx"content="黑链及描述">
三、总结
以上总结了挂暗链的常用手法,相信还有一些其他方式被攻击者利用,不难发现凡是可以隐藏文本信息的地方都可以挂暗链,比如我们可以通过创建下拉菜单,将非法链接混合在合法菜单之中,如果菜单足够长或者没人去点击的话,也很难察觉。被植入暗链的网页不仅对于网站本身的信誉形象产生负面影响,更严重扰乱了搜索引擎排名机制。为了防止网站被挂黑链,我们还需加强对网站的监管,采取一些防范措施,比如定期查看网站的源代码,使用站长工作检查黑链、死链,定期进行网站漏洞检测、漏洞修复、后门检测等,提高网站安全性等。