- 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, 就能看到代码了
- 在线JS处理eval的网站. 大多数的eval加密. 都可以搞定了.