O documento discute como executar códigos não confiáveis de forma segura no Node.js. Sugere usar o módulo vm para compilar e executar códigos em contextos isolados ou usar processos filhos (child processes) para executar códigos em processos separados com comunicação entre eles. Isso permite executar códigos de forma segura sem acesso aos recursos do sistema.
7. 1. Como rodar código de uma forma segura?
2. Como otimizar o processamento das partidas?
Problemas :(
8. function Player () {
var fs = require('fs');
this.move = function () {
// hora de dar tchau
while (true) {
console.log(process.pid);
console.log(__filename);
console.log(fs.readdirSync(__dirname));
}
return 0;
}
}
23. "Note that running untrusted code is a tricky
business requiring great care."
"script.runInNewContext is quite useful, but
safely running untrusted code requires a separate
process."
24. Carrega e executa um processo filho (no sistema
operacional) e captura as saídas do programa.
Child Process
25. "It is possible to stream data through a child's
stdin, stdout, and stderr in a fully non-blocking
way."
"Child processes and parent processes can
communicate neatly back and forth, and parent
processes can listen to and control their child
processes."
32. Executa um processo filho do nodejs. Permite a
comunicação entre pai e filho através da classe
EventEmitter.
child_process.fork(module, args, opts)
33. "These child Node.js processes are still whole new
instances of V8. Assume at least 30ms startup and
10mb memory for each new Node.js. That is, you
cannot create many thousands of them."
"Unlike the fork() POSIX system call,
child_process.fork() does not clone the current
process."