如何防止通过注入运行Node IIFE功能?

时间:2019-03-12 10:30:17

标签: javascript node.js code-injection

我的情况是我正在探索代码注入,因此在IIFE函数中故意放弃了var / let。

阻止IIFE运行的最佳方法是什么?如果在Node REPL中尝试此代码,则Hammerhead变量将落在全局范围内。我试图弄清楚如何防止这样的代码注入。是否可以在运行IFFE之前将所有参数转换为字符串?

IS MISSING predicate

节点REPL>锤头

打印

“在全球范围内”

我认为也许我可以将Arguments转换为String,但似乎JavaScript首先会评估IIFE。

function keepItLocal(input) {
  console.log(input);
  return input;
}
keepItLocal('test', (function IIFE() {
  hammerhead = 'on the global scope';
  console.log(hammerhead);
  return 1
}()));

0 个答案:

没有答案