之前有收集了一些主流的隐藏链接代码,最近又发现一种相当牛X的代码,如下:
源代码:
<div style=”position:absolute;left:expression(1-900);top:expression(3-999);”>隐藏内容</a></div>
这个代码中,expression后面的内容可以理解为JS代码并执行,但是仅IE支持这个属性,其他浏览器无效,So,搜索也无法判定是作弊。
关于这个代码的详细介绍如下:
最近很多朋友的站都有被有被挂上经历,一个个被弄得苦不堪言,却又无处报怨。唉,现在的挂马真是越来越牛了,杀起来也煞费苦心啊。我在帮朋友处理挂马的过种中无意中在代码里发现了一个很陌生的CSS写法“left:expression(1-900);top:expression(3-999);”,而且在其下面有无数个链向其它网站的链接,在浏览器状态下查看,居然是什么也没有发现。我马上想起了一个熟悉的概念:[strong]隐藏链接[/strong]。
不能不说这是一种高明的写法,至少我是在看到后才知道expression可以这样用,当然你也可以笑我才疏学浅。我们都知道expression的only IE CSS属性,具休来看一下官方定义:
IE5及其以后版本支持在CSS中使用expression,用来把CSS属性和Javascript表达式关联起来,这里的CSS属性可以是元素固有的属性,也可以是自定义属性。就是说CSS属性后面可以是一段Javascript表达式,CSS属性的值等于Javascript表达式计算的结果。 在表达式中可以直接引用元素自身的属性和方法,也可以使用其他浏览器对象。这个表达式就好像是在这个元素的一个成员函数中一样。
通过定义,我大概知道了这个属性可以比喻成JS的函数,而我们又知道搜索引擎现在是无法读取JS的,那么我们是否可以判断这种隐藏链接的方法是可行的呢?另外,因为其是only IE CSS属性,就是在说其它浏览器下面它是没有效果的,也是就是说隐藏将会现形。如果是这样子,搜索引擎就更加不能认定这是一种隐藏链接作弊的方法了,你认为呢?
1.yeeseo comments at 2009-5-22 9:37:53
expression一直是IE only的js in css法,不过执行效率很低。
我认为不管js还是css,只要直接写在页面代码中就很危险。另外不能说ie only其他浏览器能看到应该就不危险,你后面提到的 line-height:1px 不同的浏览器也有不同的理解,除了ie其它浏览器下文本并不会被隐藏,那么此刻搜索引擎又会站在ie的角度还是非ie的角度去看?
其实我的观点倒不是这些,我认为只要作弊方法好就不会有危险,但是写在页面里再高明也危险。
···
···