toxic-johann / toxic-johann.github.io

my blog
6 stars 0 forks source link

[2017-10-01] 如何劫持 location.href #35

Open toxic-johann opened 7 years ago

toxic-johann commented 7 years ago

location.href 是只读特性,基本没有可行办法。但是在 chrome50 - chrome60 这十代产品中有一个 bug。可以允许你修改 location。

在 console 输入以下代码

 function location(){}

只要不报错即可劫持。

如果部分网页的跳转是用 location.href 跳转,可以通过此方法劫持为 window.open。

const _location = window.document.location;

window.location = new Proxy(_location, {
  set: function(target, prop, value, receiver){
    if (prop !== 'href'){
      Reflect.set(target, prop, value, receiver);
    }else{
      window.open(value);
    }
  }
})

具体问题参考此篇文章.