artch
@artch

Скрытие доступа к global в node.js?

Задача: сделать так, чтобы некий исполняющийся на сервере через eval() (или через конструктор функции, неважно) код никаким образом не мог получить доступ к объекту global и require.

Простое решение:
function runCode(code) {
  var global, require; 
  eval(code);
}

// evaled code:
console.log(global); // -> undefined


Обход решения:
// evaled code:  
var global = eval("(new ('hello'.constructor.constructor)('return global;'))()");
console.log(global); // !!!


Вопрос: как более надежно скрыть global, чтобы этот обход не работал?
  • Вопрос задан
  • 2305 просмотров
Решения вопроса 1
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы