草庐IT

node.js - node.js 安全/转义中的 child_process 生成

在Node中,我使用了一个模块(GM),并注意到它使用child_process模块中的spawn将参数传递给GraphicMagick的convert可执行文件。我正在将用户提交的信息传递给GM。是否存在用户可以使用管道(或其他命令行技巧)进行某种注入(inject)攻击的安全问题?还是spawn可以防止这种情况发生?如果没有,在这种情况下是否有转义用户提交的值的最佳做法? 最佳答案 我们最近发布了一篇关于避免node.js中的命令注入(inject)漏洞的博文。它解释了一点关于spawn如何防止这种情况。如果gm使用child_

node.js - child_process.fork 和 cluster.fork 之间的有效区别是什么?

我知道cluster.fork将允许多个进程在同一个端口上监听,我还想知道当您的一些工作人员不是监听器/处理程序时,支持这一点有多少额外的开销为tcp服务?我有一项服务,我还想启动几个工作人员。例如:2个Web服务监听器进程和3个工作人员实例。最好对它们都使用集群,还是将集群用于2个Web服务,而child_process用于工作人员会更好?我不知道node的内部结构,但我认为如果我和其他人更好地了解在不同的需求下采取哪条路线会很好。目前,我对所有进程都使用集群。 最佳答案 cluster.fork是在child_process.f

node.js - 如何使用 nodejs child_process.spawn 捕获 ENOENT?

我正在使用spawn生成一个长时间运行的进程,该进程会随着时间的推移将输出发送到stdio,并由我的nodejs脚本读取和处理。棘手的部分是我不能保证发送的命令总是有效的。如何在生成时发现错误?最好这不会涉及安装全局异常处理程序,因为我不想处理任何其他异常。(如果这是唯一的方法,我需要弄清楚生成的进程何时正确启动,然后卸载处理程序,这是我不想陷入的困惑。)我想运行的代码是这样的:varspawn=require('child_process').spawn;try{spawn("zargle");}catch(e){console.error("I'mhandlingtheerror!

node.js - 测试 child_process.exec 标准输出

我正在尝试用mocha测试子进程的输出。我的测试如下所示:varshould=require("should"),exec=require("child_process").exec;describe('users',function(){describe('andrei',function(){exec('idandrei',function(error,stdout,stderr){it('shouldbepartofgroupdev',function(){stdout.should.containEql('dev');})})})})我遇到的问题是it永远不会被执行。我可以交换

node.js - Electron 杀死 child_process.exec

我有一个Electron应用程序,它使用child_process.exec来运行长时间运行的任务。当用户在这些任务期间退出应用程序时,我正在努力管理。如果他们退出我的应用程序或点击关闭,子进程将继续运行直到它们完成,但是Electron应用程序窗口已经关闭并退出。有没有办法通知用户有进程仍在运行,当他们完成后关闭应用程序窗口?我的main.js中只有标准代码://Quitwhenallwindowsareclosed.app.on('window-all-closed',function(){//OnOSXitiscommonforapplicationsandtheirmenuba

node.js - npm install child_process 不工作

我想使用child_process模块从node.js运行脚本,但是当我运行命令时npminstallchild_processIgetthefollowingerror:npmhttpGEThttps://registry.npmjs.org/ChildProcessnpmhttp404https://registry.npmjs.org/ChildProcessnpmERR!404'ChildProcess'isnotinthenpmregistry.npmERR!404Youshouldbugtheauthortopublishit只是想知道是child_process模块被删除

node.js - 路径有空格时无法执行 child_process.exec()

我正在使用appjs*,我想执行一个命令来打开一个文件夹。我有什么varpath=__dirname+'/foldertoopen/';//path=C:\ProgramFiles\myapplication/foldertoopen/require("child_process").exec("start"+path);错误CouldnotfindfileC:\Program我尝试了什么我已经尝试过逃离空格,但没有成功。varpath=__dirname+'/foldertoopen/';path=path.replace('','\');//path=C:\ProgramFiles

javascript - Node.js - 向 child_process 发送大对象很慢

我的用例如下:我从我的Node服务器向公共(public)API进行了大量的RESTAPI调用。有时react很大,有时react很小。我的用例要求我对响应JSON进行字符串化。我知道一个很大的JSON作为响应会阻塞我的事件循环。经过一番研究,我决定使用child_process.fork来解析这些响应,这样其他API调用就不需要等待了。我尝试将一个30MB的大JSON文件从我的主进程发送到fork的child_process。子进程需要很长时间才能选择和解析json。我对子进程的期望并不大。我只想字符串化并获取长度并发送回主进程。我附上了主代码和子代码。varmoment=requi

node.js - child_process spawn() 中的通配符?

我想在node.js中执行类似“doSomething./myfiles/*.csv”的命令。我想使用spawn而不是exec,因为它是某种监视进程,我需要stdout输出。我试过了varspawn=require('child_process').spawn;spawn("doSomething",["./myfiles/*.csv"]);但是通配符*.csv将不会被解释。使用spawn()时不能使用通配符吗?有没有其他方法可以解决这个问题?谢谢托本 最佳答案 *正在由shell扩展,而对于child_process.spawn,

javascript - Firebase .orderByChild().equalTo().once().then() 当 child 不存在时 promise

我的API/auth/login端点采用req.body像这样:{"email":"jacob@gmail.com","password":"supersecretpassword"}在端点,我引用了我的Firebase数据库(https://jacob.firebaseio.com/users)。我搜索数据,当我找到一个用户的电子邮件与req.body.email匹配时,我将密码与存储在数据库中的密码进行比较。我遵循了inthisFirebaseblogpost概述的promise结构.router.post('/login',function(req,res){constref=d