首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >node.js:使用用户输入作为命令行参数安全吗?

问node.js:使用用户输入作为命令行参数安全吗?
EN

Stack Overflow用户
提问于 2018-11-30 21:23:14
回答 1查看 290关注 0票数 1

我想使用child_process.execFile(文件,参数,回调) (node.js)来调用主机服务器上的特定应用程序。“file”参数是由我定义的。将未清理的用户输入传递给'args‘参数安全吗?如果不是:我如何清理输入?

EN

回答 1

Stack Overflow用户

发布于 2018-11-30 21:37:25

不,这绝对是不安全的。用户可以智能地结束命令并执行单独的命令,并且根据您的节点应用程序正在运行的权限级别,将能够执行大量操作。

我不确定您如何检索用户输入,但是,您应该为特定的参数解析输入。例如,假设你想传入arg,你应该从用户输入中获取并传递child_process.execFile(file, arg, ...)。

您可能还应该清理用户输入,这可以通过各种方式完成,包括使用sanitize library。通过对输入进行参数化,可以非常直接地进行清理,同时还可以限制可以传入的内容。

===========================================================================

更新:

从理论上讲,如果你需要允许用户传递任何东西,你可以在一些封闭的环境中开始操作,比如一个容器,尽管这相当复杂,并且根据一个人想要在你的系统中弄出多少东西,有相当高的机会被the。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53558434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档