【JavaScript17】eval函数

发布时间 2023-08-06 21:47:43作者: Tony_xiao
  • eval本身在js里面正常情况下使用的并不多. 但是很多网站会利用eval的特性来完成反爬操作. 我们来看看eval是个什么鬼?
  • 从功能上讲, eval非常简单. 它和python里面的eval是一样的. 它可以动态的把字符串当成js代码进行运行.
var s = "1+2+3+4+5+6+7+8";
var c = eval(s); // 帮你执行完js代码. 并返回结果
console.log(c);   //36
  • eval想要正常执行的话. 穿进去的参数必须是字符串
// eval可以做混淆.
// 解密依靠的是: 穿进去的参数必须是字符串(代码)
eval(
   function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?           String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('0.1("我爱你");',62,2,'console|log'.split('|'),0,{}) )
// 解决方案: 直接把eval四个字母删掉. 复制到浏览器的console, 就能看到代码了