??????????????????????????????????????????????????????????????????檔
?????????????????????????????????????????????
???????磬??????????????????? setAttribute??????????????? setAttributeNode???????????????????????????ζ????????á?
???????磬?????????????? createElement??????? createElementNS ?????????????????????????????? cloneNode????????????????Щ??????????????????????
????????????????????????????????????
?????????????? eval
??????????????β?????????л????????????? eval??setTimeout('...') ??Щ???????????????????????д?????????????? XSS ????
?????????о???????????
????eval
????setTimeout(String) / setInterval(String)
????Function
????execScript / setImmediate(String)
?????????????????????????????????????????????????????????????????????????????
????eval ??д????????
????eval ??????????????????????д??
????var raw_fn = window.eval;
????window.eval = function(exp) {
????alert('???eval: ' + exp);
????return raw_fn.apply(this?? arguments);
????};
????console.log(eval('1+1'));
?????????????????????????????????????? Demo ??????????? eval ??????
????(function() {
????eval('var a=1');
????})();
????alert(typeof a);
????Run
???????????? undefined ?????????? number?????????????????????????????????????????eval ?????????????????????????????????????????????????
????Function ??д????????
????Function ???????????????д window.Function ????????????аɡ?
????var raw_fn = window.Function;
????window.Function = function() {
????alert('????Function');
????return raw_fn.apply(this?? arguments);
????};
????var add = Function('a'?? 'b'?? 'return a+b');
????console.log( add(1?? 2) );
??????д?????С????????????????????????к??????? Function ????????????????κ?????????? constructor ?????????? Function??