这是 一道javascript 题目, 答案应该是一个url, 该如何解?
请大家帮忙, 贴答案的时候也顺便解释下原理呗:
a="hostname,test,value,input,getElementsByTagName,nextQuiz,23805,http,protocol,location,reverse,join,split,w2YHUbQTv6z4COflZD7FXGxLWTO?/ziuq/moc.oaboat.deu//:ptth,GET,...".split(",");this[a[5]]=a[13][a[12]]("")[a[10]]()[a[11]]("");0;
伊谢尔伦2017-04-10 12:44:51
淘宝的UED题目:
a="hostname,test,value,input,getElementsByTagName,nextQuiz,23805,http,protocol,location,reverse,join,split,w2YHUbQTv6z4COflZD7FXGxLWTO?/ziuq/moc.oaboat.deu//:ptth,GET,...".split(","); this[a[5]]=a[13][a[12]]("")[a[10]]()[a[11]](""); 0; console.log(this[a[5]]);
把a用","分隔成数组,将其中的 w2YHUbQTv6z4COflZD7FXGxLWTO?/ziuq/moc.oaboat.deu//:ptth
倒序输出
运行一遍输出的结果是:
http://ued.taobao.com/quiz/?OTWLxGXF7DZlfOC4z6vTQbUHY2w
高洛峰2017-04-10 12:44:51
this[a[5]]=a[13][a[12]]("")[a[10]]()[a[11]]("");
相当于:
this['nextQuiz'] = "w2YHUbQTv6z4COflZD7FXGxLWTO?/ziuq/moc.oaboat.deu//:ptth".split("").reverse().join("");
所以结果是
location.href = nextQuiz;
PHPz2017-04-10 12:44:51
个人认为原理就是作为 Javascript 对象的方法调用,下面两种形式是等价的:
obj.method(); 等价于 obj['method']();