目前是直接在后端调用"os/exec"提供的方法,比如
cmd := exec.Command("firefox")
err := cmd.Run()
但总觉得直接执行用户传递过来的命令,风险很大。 能想到的解决办法是,将要执行的命令,保存为固定格式的 sh 文件,仅将个别参数传递进去,以此减少风险。
不知道这个想法对不对,想听听各位的意见。
先行感谢:)
目前是直接在后端调用"os/exec"提供的方法,比如
cmd := exec.Command("firefox")
err := cmd.Run()
但总觉得直接执行用户传递过来的命令,风险很大。 能想到的解决办法是,将要执行的命令,保存为固定格式的 sh 文件,仅将个别参数传递进去,以此减少风险。
不知道这个想法对不对,想听听各位的意见。
先行感谢:)
|
dayeye2006199Sep 29, 2023
1
你这是要实现什么应用?用户传什么东西给你,然后你拿到这个输入之后要干啥来着?
运行用户的代码? |
|
whinterSep 29, 2023
2
沙箱
|
|
julyclydeSep 29, 2023
3
不要允许开放式的输入
|
|
4
@julyclyde 谢谢
|
|
5
@dayeye2006199 比如 通过 web 操作 iptables 或者 crontab 之类的
|
|
whileFalseSep 30, 2023
6
@hi20151215x 这玩意很容易把自己干死。建议别整这稀的溜的
|
|
MaboroshiiSep 30, 2023 via Android
7
给指令整个白名单吧
|
|
bugfanSep 30, 2023 via iPhone
8
找一些实现了操作 iptables cron 的库,然后编译到自己的后端去,或者魔改一下。
|
|
9
@whileFalse ? 啊 为什么??
|