12 eval函數(shù)
eval本身在js里面正常情況下使用的并不多. 但是很多網(wǎng)站會利用eval的特性來完成反爬操作. 我們來看看eval是個什么鬼?
從功能上講, eval非常簡單. 它和python里面的eval是一樣的. 它可以動態(tài)的把字符串當(dāng)成js代碼進行運行.
s = "console.log('我愛你')";
eval(s);
也就是說. eval里面?zhèn)鬟f的應(yīng)該是即將要執(zhí)行的代碼(字符串). 那么在頁面中如果看到了eval加密該如何是好? 其實只要記住了一個事兒. 它里面不論多復(fù)雜. 一定是個字符串.
比如:文章來源:http://www.zghlxwxcb.cn/news/detail-663693.html
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()里面是字符串. 記住~!!
那我想看看這個字符串長什么樣? 就把eval()里面的東西拷貝出來. 執(zhí)行一下. 最終一定會得到一個字符串. 要不然eval()執(zhí)行不了的. 對不...于是就有了下面的操作.
http://tools.jb51.net/password/evalencode, 在贈送你一個在線JS處理eval的網(wǎng)站. 大多數(shù)的eval加密. 都可以搞定了.文章來源地址http://www.zghlxwxcb.cn/news/detail-663693.html
到了這里,關(guān)于12 JavaScript 關(guān)于eval函數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!