gpt4 book ai didi

bash - 使用系统执行某些操作时如何防止代码注入(inject)?

转载 作者:行者123 更新时间:2023-11-29 09:50:55 25 4
gpt4 key购买 nike

我正在编写一个脚本来检查有关 Docker 容器的某些内容;它是哪个容器取决于用户输入。所以我有这样的代码:

(define pipes (process (string-append "docker inspect " name)))

在shell中获取调用docker inspect $name的结果。我怎样才能保护它免受代码注入(inject)?有人可以输入 someName ; sudo rm -rf/--no-preserve-root 结果不会很好。我可以让它具有 docker inspect "$name" 的效果,甚至可以将它放在单引号之间,但在这两种情况下,有人可以输入 someName"someName' 而不是,问题又回来了。

最佳答案

使用 process* 函数,它为命令名称及其参数采用单独的参数,绕过 shell 运行程序。

(process* "docker" "inspect" name)

关于bash - 使用系统执行某些操作时如何防止代码注入(inject)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45064077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com