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