javascript-obfuscator / javascript-obfuscator/gulp-javascript-obfuscator
Parenthesis removed, resulting in altered execution
- Langage dominant
- JavaScript
- Étoiles
- 103
- Forks
- 37
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
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
}
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Piste de recherche
Reproduisez les deux expressions d’alerte via le plugin Gulp en utilisant les options indiquées, puis comparez le JavaScript original et le JavaScript généré. Vérifiez pourquoi l’expression entre parenthèses modifie son comportement et validez la correction en confirmant que les deux alertes générées préservent le résultat d’exécution attendu.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- javascript
- Domaine
- build-system
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 38/100