javascript-obfuscator / javascript-obfuscator/gulp-javascript-obfuscator

Parenthesis removed, resulting in altered execution

未關閉
#26 2 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
JavaScript
星號
103
分支
37
PR 合併指標
30 天內沒有已合併 PR

描述

var obj = {val:true}
alert( true  ||  **(**true &&  obj.value == true**)**)  //true
alert( true  ||  true &&  obj.value == true)  //false
 
 becomes
 
var obj = { 'val': !![] };
alert(!![] || !![] && obj['value'] == !![]); //false
alert(!![] || !![] && obj['value'] == !![]); //false

Tested in Adobe ESTK after running Gulp with the following options:
{
compact: false,
controlFlowFlattening: false, //KILLS JSX
deadCodeInjection: false, //KILLS JSX
disableConsoleOutput: false,
identifierNamesGenerator: 'mangled',
renameGlobals: false,
selfDefending: false,
sourceMap: false,
stringArray: false,
rotateStringArray: false,
stringArrayEncoding: false,
splitStrings: false,
transformObjectKeys: false,
unicodeEscapeSequence: false
}

貢獻指南

這個儲存庫沒有索引到貢獻指南

研究方向

使用列出的選項透過 Gulp 外掛程式重現這兩個 alert 運算式,然後比較原始 JavaScript 和產生的 JavaScript。檢查為什麼加上括號的運算式會改變行為,並透過確認產生的兩個 alert 都保留預期的執行結果來驗證修正。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
javascript
領域
build-system
Issue 類型
缺陷
難度
3/5
預估耗時
1-2 天
活躍度
停滯
描述清晰度
基本清楚
新手友好度
38/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。