【发布时间】:2021-08-01 22:14:03
【问题描述】:
您好,我对 Web 安全还很陌生,担心可能的 shell/命令注入风险。我想知道仅在我的 nodejs 后端运行命令行脚本并让网络主机运行它是否安全。
据我了解,由于无法从网站及其前端访问后端,因此可以安全运行。
【问题讨论】:
标签: node.js shell security command-line
您好,我对 Web 安全还很陌生,担心可能的 shell/命令注入风险。我想知道仅在我的 nodejs 后端运行命令行脚本并让网络主机运行它是否安全。
据我了解,由于无法从网站及其前端访问后端,因此可以安全运行。
【问题讨论】:
标签: node.js shell security command-line
据我了解,由于无法从网站及其前端访问后端,因此可以安全运行。
这基本上是正确的,但我将其改写为:
只要您传递给 shell 脚本的参数是硬编码的或服务器生成的值,就可以安全地从 Web 服务器运行 shell 脚本。
当您获取来自网络用户的字符串并将它们作为参数传递给 exec 调用时,就会发生外壳注入。可以安全地执行此操作,但您需要仔细清理或转义输入以使其命令行安全,但这有点棘手且难以正确执行,因为您需要的“危险字符”列表在 bash、zsh、powershell 等中,清理/转义是不同的。
【讨论】: